ホームページ  >  記事  >  バックエンド開発  >  Pythonの勉強ノートの共通機能と解説

Pythonの勉強ノートの共通機能と解説

WBOY
WBOYオリジナル
2016-06-16 08:44:07988ブラウズ

基本カスタマイズタイプ

コードをコピー コードは次のとおりです。

C.__init__(self[, arg1, ...]) コンストラクター(いくつかのオプションのパラメーターを使用)
C.__new__(self[, arg1, ...]) コンストラクター (いくつかのオプションのパラメーターを使用); 通常、不変データ型のサブクラスを設定するために使用されます。
C.__del__(self) デコンストラクター
C.__str__(self) 印刷可能な文字出力、組み込みの str() および print ステートメント
C.__repr__(self) 組み込みの repr( ) および '' 演算子
C.__unicode__(self)b 組み込み unicode() の Unicode 文字列出力。

C.__call__(self, *args) は呼び出し可能なインスタンスを表します
C.__nonzero__(self) はオブジェクトの False 値を定義します (バージョン 2.2 以降)
C.__len__ (self) "length" (クラスで利用可能)

;

特別なメソッド 説明
オブジェクト (値) の比較 c

コードをコピー コードは次のとおりです:

C.__cmp__ (self, obj) 組み込みの cmp()
C.__lt__(self, obj) と、対応する <= 演算子
.__gt__(self, obj ) より大きい/以上である; > および >= 演算子
C.__eq__(self, obj) と等しい/等しくない; =、!= および <> 演算子

属性
コードをコピー コードは次のとおりです:

C.__getattr__(self, attr) 属性を取得します。属性が見つからない場合にのみ呼び出されます
C.__setattr__(self, attr, val) 属性を設定します
C .__delattr__(self, attr) 属性を削除します
C.__getattribute__(self, attr) は属性を取得します; 常に呼び出される組み込み getattr();
C.__get__(self, attr) (記述子) は属性を取得します
C.__set__(self, attr, val) (記述子) 属性を設定します
C.__delete__(self, attr) (記述子) 属性を削除します

カスタム クラス/シミュレートされた型
数値タイプ: 二項演算子

コードをコピーします コードは次のとおりです。

C.__*add__(self, obj) plus +operator C.__*sub__(self, obj) 減算; - 演算子
C.__*mul__(self, obj) 乗算; *operator
C.__*div__(self, obj) 除算;/演算Operator
C.__*truediv__(self, obj) 真の除算;/Operator
C.__*floordiv__(self, obj) Floor 除算;//Operator
C.__*mod__(self , obj ) モジュロ/剰余; % 演算子
C.__*divmod__(self, obj) 組み込み divmod()
C.__*pow__(self, obj[, mod ]) 累乗; -in pow(); ** 演算子
C.__*lshift__(self, obj) 左シフト演算子

特別なメソッドの説明

カスタム クラス/モック型
数値型: 二項演算子

コードをコピーします コードは次のとおりです。
C.__*rshift__(self, obj) 右シフト > > 演算子
C.__*and__(self, obj) ビット単位 AND; & 演算子
C.__*or__(self, obj) 演算子
C.__*xor__( 、obj) ビット単位の AND または ^ 演算子

数値型: 単項演算子

コードをコピー コードは次のとおりです:
C.__neg__(self) 1 ドル マイナス
C.__pos__ (self) 1 ドル 正の
C.__abs__(self) 組み込み abs()
C.__invert__(self) ビット単位の否定; ~ 演算子

数値型:数値変換

コードをコピー コードは次のとおりです。
C.__complex__(self, com) は complex (複数形) に変換されます。 ; 組み込みの complex ()
C.__int__(self) は int に変換され、組み込みの int()
C.__long__(self) は組み込みの long()
に変換されます。 C.__float__(self) は float に変換されます。組み込み float()

数値型:基本表現(文字列)

コードをコピー コードは次のとおりです。
C.__oct__(self) 組み込み oct()
C .__hex__(self) 組み込み hex()

数値型: 数値圧縮

コードをコピー コードは次のとおりです。
C.__coerce__(self, num) は同じ数値型に圧縮されます。 ; 組み込み強制 ()
C.__index__(self)g 必要に応じて、オプションの数値型を整数型に圧縮します (例: スライス
インデックスなど
) シーケンスタイプ

[code]

C.__len__(self) シーケンス内の項目の数
C.__getitem__(self, ind) 単一のシーケンス要素を取得します
C.__setitem__(self, ind,val ) 単一のシーケンス要素を設定します
C.__delitem__(self, ind) 単一のシーケンス要素を削除します

特別なメソッドの説明

シーケンスタイプ

コードをコピー コードは次のとおりです:

C.__getslice__(self, ind1,ind2) 得到序列片断
C.__setslice__(self, i1, i2,val) 设置序列片断
C.__delslice__(self, ind1,ind2) 删除序列片断
C.__contains__(self, val) f 测试序列成员;内建in 关键字
C.__*add__(self,obj) 串连;+操作符
C.__*mul__(self,obj) 重复;*操作符
C.__iter__(self)  创建迭代类;内建iter()

映射类型

复制代码 代码如下:

C.__len__(self) mapping 中的项的数目
C.__hash__(self) 散列(hash)函数值
C.__getitem__(self,key) 得到给定键(key)的值
C.__setitem__(self,key,val) 设置给定键(key)的值
C.__delitem__(self,key) 删除给定键(key)的值
C.__missing__(self,key) 给定键如果不存在字典中,则提供一个默认值

记几个常用的python函数,免得忘
获得文件扩展名函数:返回扩展名 和 扩名之前的文件名路径。

复制代码 代码如下:

os.path.splitext('xinjingbao1s.jpg')
('xinjingbao1s', '.jpg')

os和os.path模块

复制代码 代码如下:

os.listdir(dirname):列出dirname下的目录和文件
os.getcwd():获得当前工作目录
os.curdir:返回但前目录('.')
os.chdir(dirname):改变工作目录到dirname

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]

复制代码 代码如下:

1.创建一个唯一的临时文件:tempfile.mktemp() --> filename

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()

查看源代码打印帮助

复制代码 代码如下:

from time import *

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("%Y-%m-%d %H:%M:%S", time.localtime())格式化成Sat Mar 28 22:24:24 2009形式

  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"))


python time datetime模块详解

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

秒を日付形式に変換します

>>> cc = time.localtime(os.path.getmtime('E:\untitleds.bmp'))

>>> [0:3]
(2008, 9, 19)

DateTime の例

----------------

2 つの日付間の日数の差の計算を示します
>>>
>>> d1 = datetime.datetime(2005, 2, 16)
>>> d2 = datetime.datetime(2004, 12, 31)
>>> ; ( d1 - d2).days
47

秒単位で表示される実行時間の計算例を示します。

import datetime

starttime = datetime.datetime.now()
#long running
endtime = datetime.datetime.now()
print (終了時間 - 開始時間).秒

現在時刻から 10 時間遡って時刻を計算する例を示します。

>>> d1 = datetime.datetime.now()

>>> d3 = d1 + datetime.timedelta(hours=10)
>>> ctime()

一般的に使用される 2 つのクラスは、datetime と timedelta です。それらは互いに加算または減算できます。各クラスには、特定の値を表示するためのメソッドと属性がいくつかあります

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。