1. 时间日期
Time 模块
time模块表示时间有两种形式,分别为时间戳
和数组(struct_time)
。
>>> import time
>>> print time.time()
1434010963.16
>>> print time.localtime()
time.struct_time(tm_year=2015, tm_mon=6, tm_mday=11, tm_hour=16, tm_min=23, tm_sec=5, tm_wday=3, tm_yday=162, tm_isdst=0)
两种表示法可以通过gmtime()
和mktime()
相互转换。
>>> import time
>>> print time.gmtime(time.time())
time.struct_time(tm_year=2015, tm_mon=6, tm_mday=11, tm_hour=8, tm_min=35, tm_sec=39, tm_wday=3, tm_yday=162, tm_isdst=0)
>>> print time.mktime(time.localtime())
1434011755.0
>>>
使用strptime可以将字符串转换为数组时间格式。
>>> import time
>>> time.strptime('20150306', '%Y%m%d')
time.struct_time(tm_year=2015, tm_mon=3, tm_mday=6, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=65, tm_isdst=-1)
使用strftime可以将数组时间格式转换为字符串。
>>> import time
>>> print time.strftime('%Y-%m-%d', time.localtime())
2015-06-11
>>> print time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
2015-06-11 16:47:32
Datetime 模块
获取当前时间
>>> import datetime
>>> print datetime.datetime.now()
2015-06-11 17:13:45.427000
将字符串转换为datetime格式的时间
string = '2015-03-06'
d1 = datetime.datetime.strptime(string, '%Y-%m-%d')
也可以手动赋值,生成时间
>>> import datetime
>>> print datetime.datetime(2015, 3, 6, 12, 1, 15)
2015-03-06 12:01:15
像time模块一样,同样可以使用strftime()
来将时间转换为字符串
>>> import datetime
print datetime.datetime(2015, 3, 6, 12, 1, 15).strftime('%Y%m%d')
20150306
time与datetime之间的互相转换
>>> datetime.datetime.fromtimestamp(time.time())
datetime.datetime(2015, 6, 11, 17, 28, 38, 7000)
求指定日期的n天后的日期
#d1 = datetime.datetime(2015, 03, 06)
>>> string = '2015-03-06'
>>> d1 = datetime.datetime.strptime(string, '%Y-%m-%d')
>>> d2 = d1 + datetime.timedelta(days=6)
>>> print d2.strftime('%Y-%m-%d')
2015-03-12
2. 字符编码
>>> s = "中文"
>>> type(s)
<type 'str'>
>>> u = u"中文"
>>> type(u)
<type 'unicode'>
如上可知,我们定义的变量s是字符串类型的,在前面加上一个u限定,那么变量u就是unicode类型的
Unicode 编码成 UTF-8, GB2312
>>> u = u"中文"
>>> type(u)
<type 'unicode'>
>>> utf8 = u.encode("utf-8")
>>> type(utf8)
<type 'str'>
>>> print utf8
中文
>>> utf8
'\xe4\xb8\xad\xe6\x96\x87'
>>>
>>> gb2312 = u.encode("gb2312")
>>> gb2312
'\xd6\xd0\xce\xc4'
我们之前的s, 打印出来看看它的编码
>>> s = "中文"
>>> type(s)
<type 'str'>
>>> s
'\xe4\xb8\xad\xe6\x96\x87'
跟上面对比可知,Python的默认的字符编码就是UTF-8的
3. 获取FTP文件
#!/usr/bin/env python
#encoding:utf-8
import ftplib
import patoolib
path = 'path/to/file'
filename = 'filename.tar.bz2'
ftp = ftplib.FTP("FTP IP")
ftp.login("FTP username", "FTP password")
ftp.cwd(path)
ftp.retrbinary("RETR " + filename ,open(filename, 'wb').write)
ftp.quit()
4. 打包解包
RAR解压缩
系统Linux下测试正常使用
安装patool包
pip install patool
确保系统安装有(rar|unrar|7z) 我这里安装的是unrar (sudo dnf install unrar)
import patoolib
patoolib.extract_archive("foo_bar.rar", outdir=".")
摘自: http://stackoverflow.com/questions/17614467/how-can-unrar-a-file-with-python