python:常用操作(二)

1.python以表名作为变量

1
cursor.execute('select * from ' + tableName)

注意:from后面有空格,不然例如tableName为 test,组合后会变成 select * fromtest,会报错。

2.Python获取并输出当前日期时间

1
2
import time
print time.time()

输出的结果是:
1357723206.31

可以利用time模块的格式化时间的方法来处理:

1
time.localtime(time.time())

用time.localtime()方法,作用是格式化时间戳为本地的时间。
输出的结果是:

1
time.struct_time(tm_year=2010, tm_mon=7, tm_mday=19, tm_hour=22, tm_min=33, tm_sec=39, tm_wday=0, tm_yday=200, tm_isdst=0)

最后用time.strftime()方法,把刚才的一大串信息格式化成我们想要的东西:

1
time.strftime('%Y-%m-%d',time.localtime(time.time()))

输出结果是:

1
2013-01-09

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
输出日期和时间:

time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))

time.strftime里面有很多参数,可以让你能够更随意的输出自己想要的东西:
下面是time.strftime的参数:
strftime(format[, tuple]) -> string
将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出
python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)

%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

3.报错Python3—UnicodeEncodeError ‘ascii’ codec can’t encode characters in position 0-1

跑代码的时候加上PYTHONIOENCODING=utf-8,即

1
PYTHONIOENCODING=utf-8 python your_script.py

指定为utf-8编码。

4.python使用datetime.datetime()函数比较时间

例如

1
2
datetime1 = datetime.datetime.now()
datetime2 = datetime.datetime(2018,1,1,12,13)

要比较这两个时间的先后,第一个表示当前时间,可能是2019-01-01 12:32:25,第二个是2018-01-01 12:13,可以先相减,然后算出差值秒,为正则表示被减数大,为负则表示被减数小:

1
2
temp = datetime1 - datetime2
print(temp.total_seconds())

5.判断一天是不是法定节假日/法定工作日(查看节假日安排)

引入 chinesecalendar包

1
pip install chinesecalendar

在代码引入

1
import chinese_calendar

然后可以调用判断今天是否为工作日等:

1
2
3
day = datetime.datetime.now()
chinese_calendar.is_workday(day) #返回True或False,下面等同
chinese_calendar.is_holiday(day)

每年会维护,现在维护了2019年全年。
具体可参考https://github.com/LKI/chinese-calendar

6.判断变量是否定义方法

第一种方法使用内置函数locals():

locals():获取已定义对象字典

1
'testvar'   in   locals().keys()

第二种方法使用内置函数dir():

dir():获取已定义对象列表

1
'testvar'   in   dir()

第三种方法使用内置函数vars():

vars():获取已定义对象字典

1
vars().has_key('testvar')

测试如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#testvar未定义  
print 'testvar' in locals().keys()
#输出:False

print 'testvar' in dir()
#输出:False

print vars().has_key('testvar')
#输出:False

#定义testvar
testvar=1

print 'testvar' in locals().keys()
#输出:True

print 'testvar' in dir()
#输出:True

print vars().has_key('testvar')
#输出:True

-------------本文结束 感谢您的阅读-------------