基本カスタマイズタイプ
C.__call__(self, *args) は呼び出し可能なインスタンスを表します
C.__nonzero__(self) はオブジェクトの False 値を定義します (バージョン 2.2 以降)
C.__len__ (self) "length" (クラスで利用可能)
特別なメソッド 説明
オブジェクト (値) の比較 c
カスタム クラス/モック型
数値型: 二項演算子
[code]
C.__len__(self) シーケンス内の項目の数
C.__getitem__(self, ind) 単一のシーケンス要素を取得します
C.__setitem__(self, ind,val ) 単一のシーケンス要素を設定します
C.__delitem__(self, ind) 単一のシーケンス要素を削除します
シーケンスタイプ
映射类型
记几个常用的python函数,免得忘
获得文件扩展名函数:返回扩展名 和 扩名之前的文件名路径。
os和os.path模块
os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false
os.path.isfile(name):判断name是不是一个文件,不存在name也返回false
os.path.exists(name):判断是否存在文件或目录name
os.path.getsize(name):获得文件大小,如果name是目录返回0L
os.path.abspath(name):获得绝对路径
os.path.normpath(path):规范path字符串形式
os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)
os.path.splitext():分离文件名与扩展名
os.path.join(path,name):连接目录与文件名或目录
os.path.basename(path):返回文件名
os.path.dirname(path):返回文件路径
1.重命名:os.rename(old, new)
2.删除:os.remove(file)
3.列出目录下的文件:os.listdir(path)
4.获取当前工作目录:os.getcwd()
5.改变工作目录:os.chdir(newdir)
6.创建多级目录:os.makedirs(r"c:\python\test")
7.创建单个目录:os.mkdir("test")
8.删除多个目录:os.removedirs(r"c:\python") #删除所给路径最后一个目录下所有空目录。
9.删除单个目录:os.rmdir("test")
10.获取文件属性:os.stat(file)
11.修改文件权限与时间戳:os.chmod(file)
12.执行操作系统命令:os.system("dir")
13.启动新进程:os.exec(), os.execvp()
14.在后台执行程序:osspawnv()
15.终止当前进程:os.exit(), os._exit()
16.分离文件名:os.path.split(r"c:\python\hello.py") --> ("c:\\python", "hello.py")
17.分离扩展名:os.path.splitext(r"c:\python\hello.py") --> ("c:\\python\\hello", ".py")
18.获取路径名:os.path.dirname(r"c:\python\hello.py") --> "c:\\python"
19.获取文件名:os.path.basename(r"r:\python\hello.py") --> "hello.py"
20.判断文件是否存在:os.path.exists(r"c:\python\hello.py") --> True
21.判断是否是绝对路径:os.path.isabs(r".\python\") --> False
22.判断是否是目录:os.path.isdir(r"c:\python") --> True
23.判断是否是文件:os.path.isfile(r"c:\python\hello.py") --> True
24.判断是否是链接文件:os.path.islink(r"c:\python\hello.py") --> False
25.获取文件大小:os.path.getsize(filename)
26.*******:os.ismount("c:\\") --> True
27.搜索目录下的所有文件:os.path.walk()
[2.shutil]
1.复制单个文件:shultil.copy(oldfile, newfle)
2.复制整个目录树:shultil.copytree(r".\setup", r".\backup")
3.删除整个目录树:shultil.rmtree(r".\backup")
[3.tempfile]
2.打开临时文件:tempfile.TemporaryFile()
[4.StringIO] #cStringIO是StringIO模块的快速实现模块
1.创建内存文件并写入初始数据:f = StringIO.StringIO("Hello world!")
2.读入内存文件数据:print f.read() #或print f.getvalue() --> Hello world!
3.想内存文件写入数据:f.write("Good day!")
4.关闭内存文件:f.close()
查看源代码打印帮助
def secs2str(secs):
return strftime("%Y-%m-%d %H:%M:%S",localtime(secs))
>>> secs2str(1227628280.0)
'2008-11-25 23:51:20'
将指定的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 当前时区的名称
%% %号本身
9.strptime(…)
strptime(string, format) -> struct_time
将时间字符串根据指定的格式化符转换成数组形式的时间
例如:
2009-03-20 11:45:39 对应的格式化字符串为:%Y-%m-%d %H:%M:%S
Sat Mar 28 22:24:24 2009 对应的格式化字符串为:%a %b %d %H:%M:%S %Y
10.time(…)
time() -> floating point number
返回当前时间的时间戳
三、疑点
1.夏令时
在struct_time中,夏令时好像没有用,例如
a = (2009, 6, 28, 23, 8, 34, 5, 87, 1)
b = (2009, 6, 28, 23, 8, 34, 5, 87, 0)
a和b分别表示的是夏令时和标准时间,它们之间转换为时间戳应该相关3600,但是转换后输出都为646585714.0
四、小应用
1.python获取当前时间
time.time() 获取当前时间戳
time.localtime() 当前时间的struct_time形式
time.ctime() 当前时间的字符串形式
2.python格式化字符串
格式化成2009-03-20 11:45:39形式
time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())3.将格式字符串转换为时间戳
a = "Sat Mar 28 22:24:24 2009"
b = time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))
Time模块:
--------------------------
time() #以浮点形式返回自Linux新世纪以来经过的秒数。在linux中,00:00:00 UTC,
January 1, 1970是新**49**的开始。
>>> time.time()
1150269086.6630149
>>> time.ctime(1150269086.6630149)
>>> 'Wed Jun 14 15:11:26 2006'
time.ctime([sec])#把秒数转换成日期格式,如果不带参数,则显示当前的时间。
>>> import time
>>> time.ctime()
>>> 'Wed Jun 14 15:02:50 2006'
>>> time.ctime(1138068452427683)
'Sat Dec 14 04:51:44 1901'
>>> time.ctime(os.path.getmtime('E:\\untitleds.bmp'))
'Fri Sep 19 16:35:37 2008'
>>> time.gmtime(os.path.getmtime('E:\\untitleds.bmp'))
time.struct_time(tm_year=2008, tm_mon=9, tm_mday=19, tm_hour=8, tm_min=35,
tm_sec=37, tm_wday=4, tm_yday=263, tm_isdst=0)
将一个文件的修改时间转换为日期格式(秒 转 日期)
>>> time.strftime('%Y-%m-%d %X',time.localtime(os.path.getmtime('E:\\untitleds.bmp')))
'2008-09-19 16:35:37'
#定时3秒。
>>> time.sleep(3)
TIME模块参考:
---------------------------------
#取一个文件的修改时间
>>> os.path.getmtime('E:\\untitleds.bmp')
1221813337.7626641
変数
タイムゾーン 協定世界時と地方標準時の差異 (秒単位)。
altzone 協定世界時と現地夏時間の差。
夏時間フラグ。現地時間が夏時間を反映するかどうか。
tzname (標準タイムゾーン名、夏時間タイムゾーン名)
関数
time() は、エポックからの秒数を浮動小数点数として返します。
lock() は、CPU がこのプロセスを開始した時刻を浮動小数点数として返します (または、この関数が最後に呼び出されてからの時間)
sleep() は、浮動小数点数で表される秒数の遅延を返します。ポイント番号。
gmtime() 秒で表される時間を一般的な調整された時系列に変換します
localtime() 秒をローカル時系列に変換します
asctime() 時系列をテキスト記述に変換します
ctime( ) 秒をテキストに変換しますdescription
mktime() ローカル時系列を秒に変換します
strftime() シーケンス時間を指定形式のテキスト説明に変換します
strptime() ローカル時系列を指定形式のテキスト説明に変換します 時系列を解析します
tzset() を実行し、ローカルタイムゾーンの値を変更します
DateTime モジュール
----------------- ------------------------- --------
>>> import datetime,time
>>> time.mktime(datetime.datetime(2009,1,1).timetuple())
1230739200.0
>>> cc=[2000,11,3,12,43,33] #属性: 年、月、日、時、分、
秒
>>> time.mktime(datetime.datetime(cc[0],cc[1],cc[2],cc[3],cc[4],cc[5] ).timetuple())973226613.0
秒を日付形式に変換します
>>> [0:3]
(2008, 9, 19)
DateTime の例
2 つの日付間の日数の差の計算を示します
>>>
>>> d1 = datetime.datetime(2005, 2, 16)
>>> d2 = datetime.datetime(2004, 12, 31)
>>> ; ( d1 - d2).days
47
秒単位で表示される実行時間の計算例を示します。
starttime = datetime.datetime.now()
#long running
endtime = datetime.datetime.now()
print (終了時間 - 開始時間).秒
現在時刻から 10 時間遡って時刻を計算する例を示します。
>>> d3 = d1 + datetime.timedelta(hours=10)
>>> ctime()
一般的に使用される 2 つのクラスは、datetime と timedelta です。それらは互いに加算または減算できます。各クラスには、特定の値を表示するためのメソッドと属性がいくつかあります