1.モジュール
1.1 ピクルスモジュール
####ピクルスシーケンシングモジュール インポート漬物 「」「 シリアル化: データがメモリに直接格納することができないとなる :逆シリアル化 データ形式に元のデータを復元するために シリアライズシリアライズ アンシリアライズデシリアライゼーションを 」 「」 #通常の状況下では、ファイルデータを直接格納されるコンテナ・タイプに直接ことができない 「「」 を開くと(」ceshi.txt「MODE =」W「エンコード=」UTF-8「)FP AS: LST = [1,2,3] fp.write(LST) "" " #は任意のオブジェクトの配列にダンプは、バイト LST = [1,2,3,4,5 ] RESが = pickle.dumps(LST) 印刷(RES ) #負荷任意のバイトは、元のデータにデシリアライズ RES =ピクルス。 負荷(RES) 印刷(RES、タイプの(RES)) #の直列化機能 DEF FUNC(): 印刷(" 私は機能だ" ) RES = pickle.dumps(FUNC) を印刷(RES) #のデシリアライズ関数 FUNC = pickle.loads(RES ) FUNC() #のシーケンスイテレータ からコレクションをインポートイテレータ、反復処理可能 IT = ITER(レンジ(10 )) プリント(でisinstance(IT、反復子))は RES = pickle.dumps(IT) プリント(RES) RES = pickle.loads (RES) を印刷(RES) 用 I で:RES プリント(I) #のダンプとファイル内のデータロード = {SETVAR " A "、" B " } (オープンと" ceshi.txtを"、MODE = " RB + " )FP AS: RES = ピクルス.dumps(SETVAR) fp.write(RES) #は内容を読んだときに行の最初の先頭にカーソルファイル。 fp.seek(0) RES2 = fp.read() 印刷(RES2) SETVAR = pickle.loads( RES2) 印刷(タイプのSETVAR、(SETVAR)) #のオブジェクトの後に書かれたダンプは、ファイルのようなオブジェクトにシリアル化される(つまり、ファイルオブジェクト) DEFの関数func2(): 印刷(「私は関数func2だ」) のオープンと(「ceshi02.txtを」、MODE = 「WB 」)FP AS: #のパラメータ1:データパラメータ2シリアライズする:ファイルオブジェクトに対応する pickle.dump(関数func2、FP) #1 ファイルのようなオブジェクト(すなわち、ファイル・オブジェクト)の内容負荷が出ている、元のデータが中にデシリアライズされた (オープンと" ceshi02.txt "、MODE = " RB " FP AS): FUNC = pickle.load(FP) #の呼び出し関数 FUNC() #pickleモジュールは、すべてのデータ型をシリアル化することができます。
1.2 JSONモジュール
###のJSON#の
インポートJSON
「」 "
JSONデータ列が文字列に変換することができる
データフォーマットJSONのは、それはすべてのプログラミング言語を識別することができる可能に
するboolフロートint型のリストタプル辞書strを:データ型の制限をなし
「」「
#最初のグループ:ダンプやロードは、文字列をシリアル化または逆シリアル化する
」「」
中国のensure_ascii = Falseを表示中国表示するかどうかをensure_ascii = trueをセット
sort_keys = ASCII順にソート真のキー辞書
「」 "
DIC = {"名":"李Zuqing ""年齢":58、 "性別":"男""家族":[" お父さん""お母さん""姉妹""姉妹「]}
RES = json.dumps(DIC、ensure_ascii = Falseを、sort_keys = TRUE)
印刷(RES、タイプ(RES))
DIC = json.loads(RES)
を印刷(DIC、タイプ(DIC))
#第二グループ:ダンプ負荷とのためにデータ記憶
DIC = { "名前":"李祖清"、 "年齢":58、 "セックス": "男"、 "家族":[ "爸爸"、 "妈妈"、 "姐姐"、 "妹妹"]}
オープン( "ceshi03.json"と、モード= "W"は、エンコーディング= "UTF-8" FPとして):
json.dump(偽DIC、FP、ensure_ascii =)
を開くとFP AS( "ceshi03.json"、MODE = "R&LT"、エンコード= "UTF-8"):
DIC = json.load(FP)
プリント(DIC、タイプ(DIC))の
?二つのモジュールとピクルスの間で#のJSON差
:#のJSONの使用特性
「」 "
jsonの連続ダンプが、継続的にロードされない
負荷が全体として一度だけ、それは一回ですべてのデータをロードすることができます変換は、
負荷を解決するために使用することができる
" ""
{ 'A' :. 1、DIC1 =の" B ":2}
DIC2 = {" C ":3" D ":}。4
開く(と" ceshi04.json」、 FP AS = MODE "W"、エンコード= "UTF-8"):
json.dump(DIC1、FP)
fp.write( "\ N-")
json.dump(DIC2、FP)
fp.write( "\ N-" )
#エラーが一つだけをロードすることができ、それはすべてのデータのワンタイム変換です。
「」 "
:FPとして(モード= "R"、エンコーディング= "UTF-8" "ceshi04.json")オープンと
RES = json.load(FP)
プリント(RES)
""」
#解决方式
開く( "ceshi04.json" =モード"R"、エンコーディング= "UTF-8")FPとして:
FPの行のための:
RESの=のjson.loads(ライン)
プリント(RES)
#ピックル用法特征:
インポートピクルス
"" "
ピクルス可以连续ダンプ、也可以连续負荷
"""
dic1 = { '':1、 "B":2}
dic2 = { "C":3 "D":4 }
FPとして(モード= "WB"、 "ceshi05.pkl")オープン有する:
pickle.dump(dic1、FP)
pickle.dump(dic2、FP)
開く( "ceshi05.pkl"、MODE = "RB") FPとして:
試してみてください。
しばらく真:
DIC = pickle.load(FP)
プリント(DIC)
を除きます:
パス
(333)印刷を
#ファイルオブジェクトがイテレータことですか?はい!
コレクションのインポートイテレータから
印刷(でisinstance(FP、イテレータ))
「」 "
...を除いて...してみてください
直接、このコードブロックアンインストールしようとする問題のあるコード
の異常な場合は、エラーを防ぐために、このコードブロックを除いて直接移動するプログラムを終了が発生する。
してみてください:
印刷(wangwendashuaiguo)
を除く:
パス
「」「
#概要:
」「」
二つのモジュール間の#のJSONとピクルス差:
(1)データはJSON strの後にシリアライズされた入力、すべてのプログラミング言語が識別され、
唯一の( BOOLフロートINT)(STR辞書なしリストタプル)
連続していないJSONロードは、データの全てのうち一方のみが
データ・タイプはバイトピクルスシリアライズされた後(2)、
すべてのデータ型はだけPythonの間で、変換することができます。ストレージ輸送。
漬物連続負荷、単一のファイルに複数のデータセット、
「」 "
1.3ランダムモジュール
####ランダムランダムモジュール
インポートランダム#ランダム()0 <= X <(オープンクローズ左および右)無作為0-1との間の画分を取得します。1
RES =はrandom.Random()
プリント(RES)
#randrange()ランダム指定された範囲内の整数(端値を開始値などが含まれていない、間隔の値)を取得し
#012が含まれていない。3つの
RES = random.randrange(3)
プリント(RES)
#〜4 1
RES = random.randrangeを(1、 5)
プリント(RES)
#1 4 7
RESのrandom.randrange =(1,10,3)
プリント(RES)
#randint()ランダムに生成するランダム整数(2つのパラメータは、()の指定された範囲内)を学ばなければならない
#12 4. 3
RES = random.randint(1,4)
プリント(RES)
#1 randintまたは3であり、唯一の二つのパラメータが間違っている
#1 RES = random.randint(1,10,3)
#uniform()は(オープンクローズ左右)ランダム小数指定された範囲を取得します。1 <= X <3つの
RES = random.uniform(1,3)#書かれた推薦
プリント(RES)
RES = random.uniform(2、-1 )#は推奨されません
プリント(RES)
#2 = A -1 = Bの
#+リターン(BA)* self.random()(0 <= X <1)
#self.random()#-1 <X <= 2
#2 + (-1-2)= 2 * 0
#2+(-1-2)1 * 2 = - = -1 3
#2
#choice()は、ランダム配列の値(多くの)を取得
LST = [「シュウ意志""郭Yimeng ""殷ヤン""遼Pingping「]
RES = random.choice(LST)
印刷(RES)
#カスタム選択
DEF MyChoice():
長さ= LEN(LST)
RES =ランダム。 randrange(0、長さ)
LSTは[RES]を返す
プリント(MyChoice())
#sample()はランダムシーケンスの値を取得し(マルチ複数選択)[戻る]
LST = [ "シュウ意志"、 "郭Yimeng" "陰ヤン"、 "陰陽ヤン2"、 "リャオPingping"、 "リュー・ル"]
LST = random.sample(LST、3)
プリント(LST)
#shuffle()値のランダムシーケンス(直接破壊プロ配列を破壊)
LST = [1,2,3,4,5]
random.shuffle(LST)
印刷(LST)
#ランダムコード
:DEFのyanzhengma()
strvar = ""
の範囲でI(4):
#1 Z A〜97〜122の取得小文字
RES1 = CHR(random.randrange(97123))
#のA〜Z 90大文字得る65
RES2 = CHR(random.randrange(65,91))
9に#0、0から9つの番号10には、取得した
RES3 = random.randrange(0,10)
のうち、リストに可能な文字の位
LST = [RES1、RES2、RES3]
#の文字列連結
strvar = + STR(random.choice(LST))
#文字列返す
リターンstrvar
RES = yanzhengma()
プリント(RES)
1.4 OSモジュール
#### OSオペレーティング・システム・モジュール
をインポートOSの
Pythonの中#system()実行システム
#os.system( "mspaintで")
#os.system( "IPCONFIG")
#popen()、オブジェクトの実行システムを返します文字列がreadメソッドによって読み取られ、文字化けされることはありません
objがos.popen(「IPCONFIG」)=
印刷(obj.read())
#listdir()すべてのコンテンツ内の指定したフォルダの名前のリストを取得しますが
、「」」
。表わし電流経路は
..のパスを表し
、 "" "
(「)RESはos.listdir ="
プリント(RES)#[ '1.py'、 '2.py'、 '20190728_1.json_pickle.mp4'を'3.py'、 '4.py'、 'ceshi.txt'、 'ceshi02.txt'、 'ceshi03.json'、 'ceshi04.json'、 'ceshi05.pkl'、 'ceshi_shengyin.mp4'、「part10 た.md '' part11.md「]
#getcwd()現在のファイルのデフォルトのパス取得
RES = OSを。GETCWD()
印刷(RES)#D:L006 \ \週末4
印刷(__ FILE__)#フルパス(プラスファイル名)
#1 os.mkdirは、ディレクトリ(フォルダ)を作成
Os.mkdir#( "ceshi100")
#1 os.rmdirは、ディレクトリ(フォルダ)を削除
#1 os.rmdir( "ceshi100")
ファイルの#os.rename、ディレクトリの名前を変更
( "ceshi100"、 "#のos.renameを ceshi200" )
#copy(SRC、DST)#コピーファイルのアクセス権とコンテンツ
shutil#インポート
#のshutil.copy( "ceshi02.txt"、 "ceshi333.py")
現在のファイルの作業のデフォルトのパス修正する#chdir()
#のos.chdirを( R "D:\週末4 \ L005")
#1 os.mkdir( "ceshi200")
#environ環境変数の取得または変更
#印刷を(はos.environ)
#のos.system( "QQScLauncher")
#ENVIRONは辞書を返します変数PATH環境によって、パスは、コマンドの実行時に、直接実行が発見された場合、逆にエラーを見つけるために取るべき道追加された
「」 '
印刷(はos.environ [ 『パス』])
はos.environ [ 『パス』 ] + = R "" "; C:\プログラムファイル(x86の)テンセント\ QQ \ビン\" ""
os.system(" QQScLauncher.exe「)
'' '
#- OSモジュールのプロパティ
#NAME識別子取得システムのLinux、MAC - > WindowsのPOSIX - > NTの
印刷(os.name)
Linuxでは、MACに#sep記号取得ルート- > /ウィンドウ- > \
印刷(os.sep)
#linesep収集システムの改行Linuxでは、マック- > \ nは、ウィンドウ - > \ Rの\ nはまたは\ N-
印刷(のrepr(os.linesep))