Day22アプリケーションモジュール

内容:
時間と日時モジュール
2つのランダムモジュール
3つのosモジュール
4つのsysは、モジュール
5つのshutilモジュール
6つのJSON&ピクルスモジュールを

Timeモジュール
の操作習得する#モジュールの時間優先
時間:#Aの
インポート時に

:時間は、3つの形式#に分かれて
存在秒に1970年からの経過:#1、タイムスタンプ
#効果:時間間隔を計算します

#プリント(time.time())

2020年3月30日11時11分11秒:時間の特定のフォーマットに従って#2、
効果:プレゼンテーションタイム

#プリント(time.strftime( '%Y-%M-%D%H:%M:%S%のP'))
プリント(time.strftime( '%Y-%M-%D%X'))

#3、時間の構造
#効果:単独で時間を取得するための部分

#RES = time.localtime()
プリント(RES)
プリント(res.tm_year)
プリント(res.tm_yday)

#二:日時
インポート日時

#直接時間を表示することができ、フォーマット
#印刷(datetime.datetime.now())

#は、プラスまたはマイナス分の数、日、週、第二およびその他の操作、などのn 3は三日後に計算された時間であってもよく、数日動作を行う
#印刷(datetime.datetime.now()+ datetime.timedelta (日= 3 ))
プリント(datetime.datetime.now()+ datetime.timedelta(=週1))

 

モジュール有すること#動作時間が必要
、フォーマット変換時間#1
#struct_time->#スタンプが構成タイムスタンプに変換される
インポート時間
#S_TIMEのtime.localtime =()
プリント(はtime.mktime(S_TIME))を

#タイムスタンプは、 - >なstruct_timeは、構造化タイムスタンプに変換
#1 tp_time time.time =()
印刷(time.localtime(tp_timeを))

#を追加しました:協定世界時と現地時間
#印刷(time.localtime())#上海中国時間、中国東部の8つの地区
#プリント(time.gmtime())#協定世界時、グリニッジ天文台、英国時間、理解
#印刷(time.localtime(333333333))
印刷(time.gmtime(333333333))


時間#1を表現するstruct_time構造- >フォーマットされた文字列の時間
#S_TIME time.localtime =()
プリント(time.strftime( '%Y-M-%D %% H:%のM:%のS'、 s_time))

時間のこの文字列「1988年3月3日午前11時11分11秒」の形式は、構造化時間なstruct_timeに変換
time.strptime(#印刷(「1988年3月3日午前11時11分11秒 」、「% Y-%M-%D%H: %M:%のS「))


#!!!本当に一つだけ(二つのフォーマットの変換時間を)知っている必要があります:時間のフォーマット文字列フォーマットされた文字列<------>タイムスタンプのタイムスタンプ

#「1988-03-0311:11:11」+ 7
#これはVIPユーザー充電時間「1988年3月3日十一時11分11秒」であると仮定し、ユーザーは七日のVIPを再充電に必要時間後に得られた7日の
最初になるように、この時間が必要で、#のフォーマット文字列が構造化期間に変換した後、タイムスタンプに再変換
これは、2回の加算演算を必要としない、最初のステップは、書式文字のタイムスタンプに変換され、その後、フォーマット文字列を追加した後、バック時に、次に行うために追加の操作を行うと、

ステップ1:
フォーマット文字列--->なstruct_time --->のタイムスタンプ

するstruct_time time.strptime =#( '1988年3月3日午前11時11分11秒'、 '%Y-M-%D %% H:%M:%のS')
#1はtime.mktime(するstruct_time)本工程は、与えることです秒のすべて、その後、1日であることにより、7日間で86,400秒
#=はtime.mktimeタイムスタンプ(なstruct_time)+。7 * 86400
全てを添加した後、ステップ#秒で得られた#印刷(タイムスタンプ)

ステップ2:
フォーマット文字列<---なstruct_time <---タイムスタンプ

#RES = time.strftime( '%Y-%M-%D%X'、time.localtime(タイムスタンプ))
プリント(RES)

スリープ機能の時間:
#time.sleep(3)


#の知識
#インポート時間
#印刷(time.asctime())


日時インポート
#プリント(datetime.datetime.now())#Linuxの一般的に、同様の時間フォーマットを取得するtime.strftimeの
#プリント(datetime.datetime.utcnow())#標準時間平均

#タイムスタンプ形式は、時間の文字列に変換され
た印刷(datetime.datetime.fromtimestamp(333333))

 

ランダムモジュールは、ランダムな値をとる
ランダムインポート

#印刷(はrandom.Random())# (0,1)----フロート0未満大きい間の小数1より
#プリント(random.randint(1 ,. 3))#[1,3]は1以上でありますそして未満又は3の整数に等しいです

#印刷(random.randrange(1、3 ))#[1,3) 1より大きい未満または間の整数に等しい。3
#1
#プリント(random.choice([111、 'AAA'、[4 ,. 5]) )ランダムに所定の種類、または1もしくは23 [4,5]から#

#印刷(random.sample([111、 'AAA'、 'CCC'、 'DDD']、2))#は、それぞれに指定することができますリスト要素は、任意の二つの組み合わせで指定されて取り出された値の数倍
#の
よう1.927109612082716として#プリント(random.uniform(1,3))は小数第1位よりも大きいが、3以上である、
#1
#アイテム= [1、3、 5 ,. 7 ,. 9]
#random.shuffle(アイテム)# "はシャッフル"に対応する項目をスクランブル
#プリント(アイテム)

#アプリケーション:ランダム検証コード

インポートランダム#

#RES = ''
の範囲でIのための#(6):
は26件の大文字からランダム= CHR(random.randint(65,90))を削除
#CHRは大文字ASCIIにこのテーブルを参照しますAZ大文字、ASCIIテーブル65〜90は、対応するある
#削除無作為= STR(random.randint(0,9))から10数

#ランダムな文字列から= random.choice([26の大文字10個の数字からランダム、ランダム削除A])を削除
#RES + =ランダムな文字

実装コード:
インポートランダム

DEF make_code(サイズ= 4):
RES = ''
の範囲内のiについて(サイズ):
S1 = CHR(random.randint(65,90))
S2 = STR(random.randint(0,9))
RES + =ランダム。選択肢([S1、S2])
戻りRES

プリント(make_code(6))

osモジュール:

os.getcwdは()すなわち、現在の作業ディレクトリのパスのPythonスクリプトを、現在の作業ディレクトリを取得します
CDにシェル対応; os.chdir(「のdirname」)は、現在の作業ディレクトリを変更するスクリプト
(「」):os.curdirは、現在のディレクトリを返します
OS .pardirカレントディレクトリ名の文字列の親ディレクトリを取得します:(「..」)
os.makdirs( 『dirname1 / dirname2』)多層再帰的なディレクトリ生成することがあり
os.removedirs( 『dirname1』)をディレクトリが空の場合、削除、再帰的親ディレクトリに、上に、空の削除、およびそうでなければならない
単一レベルのディレクトリを生成するos.mkdir(「DIRNAME」);シェルと同等であるDIRNAME MKDIR
os.rmdir(「DIRNAME」)空のシングルステージを削除ディレクトリ、ディレクトリは、エラーを削除できない空き缶でない場合は、シェルの同等は、dirnameには、rmdir
os.listdir(「dirnameに」)リストのすべてのファイルとサブディレクトリ指定したディレクトリに、隠しファイルを含めて、印刷リストとして
os.remove ()ファイルを削除
os.renameを(「OLDNAME」、「newnameの 」) 、ファイル/ディレクトリの名前を変更
( 『パス/ファイル名』)ファイル/ディレクトリ情報の取得はos.statを
os.sep出力動作システム固有のパス区切り文字を、勝利「\\」、Linuxでは「/」に下の
os.linesep出力電流のプラットフォーム 勝利の下に「\ rを\ n」は、ラインターミネータ、

現在のインターネットを示すos.name出力文字列。>「NT」 -勝つ; Linuxの- >「POSIX」
os.system(「bashのコマンド」)は、シェルコマンドを実行するために、直接表示
取得システム環境変数はos.environ
os.path.abspath(パス)パスを返し、絶対パスの正規化した
OSを.path.splitタプル返されたディレクトリ・パス及びファイル名に(パス)
os.path.dirname(パス)は、ディレクトリのパスを返します。実際には、第1の要素のos.path.split(パス)
os.path.basename(パス)は、ファイル名の最後のパスを返します。どのようにパス/へ\または終了、それはNULL値を返します。即ちos.path.split第2の素子の(パス)
os.path.exists(パス)パスは、存在する場合、Trueを返し、パスはFalseを、戻り存在しない場合
、パスは絶対パスである場合、os.path.isabs(パス) Trueを返す
パスが戻り真、ファイルが存在している場合os.path.isfile(パス)。それ以外の場合はFalseを返す
パスがディレクトリが存在する場合であるos.path.isdir(パス)を、その後、真を返します。そうでない場合はFALSEを返し
最初の絶対パスは無視される前に、複数のパスパラメータの組み合わせの後に返されos.path.join(パス1 [、パス2 [、...]])を
os.path.getatime(パス)復路ファイルまたはディレクトリの最終アクセス時刻にポイント
はos.path。
os.path.getsize(パス)は、パスのサイズを返します


輸入OS

#特定のフォルダとすべてのサブフォルダを取得し、サブフォルダ名
#os.listdir RES =(「」)
印刷(RES)を

#この関数は、ユニット、os.path.getsizeフォルダサイズの統計ですバイトの数である
#サイズ= os.path.getsize(R '/ユーザ/ linhaifeng / PycharmProjects / S14 / day22 / 01 時間モジュールの.py')
プリント(サイズ)


#Os.remove()ファイルを削除するには
#のos.rename( "OLDNAME"、 " newnameの")をファイル/ディレクトリの名前を変更します


#アプリケーション---- "" LS / "
#のos.system(" LS /「)

#提供:キーと値は文字列でなければなりません

#はos.environ [ 'AAAAAAAAAA'] = '111'
プリント(はos.environ)


#プリント(os.path.dirname(R '/ A / B / C / d.txt'))
プリント(os.path.basename(R '/ A / B / C / d.txt'))


#プリント(os.path.isfile(R '笔记の.txt'))
プリント(os.path.isfile(r'aaa '))
プリント(os.path.isdir(r'aaa'))

#プリント(os.path.join( ''、 '/'、 'B'、 'C​​'、 'D'))

 


#推奨この
BASE_DIR = os.path.dirname(os.path.dirname(__ FILE__))
印刷(BASE_DIR)


#BASE_DIR = os.path.normpath(os.path.join(
#__FILE__、
'.. '
#' ..'
#))
プリント(BASE_DIR)

#python3.5後、我々は新しいモジュールpathlibを立ち上げ
pathlibインポートパスから

#RES =パス(__ __ファイル)。parent.parentは
#プリント(RES)


#RES =パス( '/ A / B / C')/ 'D / e.txt'
プリント(RES)

#プリント(res.resolve())

SYSモジュール

1つのsys.argvのリストコマンドライン引数、プログラム自体パスの最初の要素
のプログラム、正常終了終了(0)を終了する2 sys.exit(N)
ここで、sys.version 3 Pythonのインタープリターは、バージョン情報を取得する
4 sys.maxint極大を整数値
5のsys.pathリターンモジュール検索パス、PYTHONPATH環境変数の初期値を使用
オペレーティングシステムのプラットフォーム名に6はsys.platformリターンを

輸入SYS

2. 3. 1 python3.8 run.py#
#sys.argvのインタプリタパラメータの後に取得
#プリント(sys.argvの)

#SRC_FILE =入力( '源文件路径: ').strip()
#dst_file =入力('目标文件路径:').strip()

#SRC_FILE = sys.argvの[1]
#dst_file = sys.argvの[2 ]
##判断

#開く(R '%s'は%SRC_FILE、モード= 'RB')read_fとして、\
#オープン(R '%s'は%dst_file、モード= 'WB')write_fとして:
ラインの# read_fで:
#1 write_f.write(ライン)

#python3.8 run.py SRC_FILE dst_file


#プリント( '[% - 50代]' % '#')
プリント( '[% - 50代]' % '##')
プリント( '[% - 50代]' % '###')

 

#インポート時間

#RES = ''
#iに対して範囲内(50):
#RES + = '#'
#1 time.sleep(0.5)
プリント( '\ R [% - 50代]' %のRES、端= '' )


インポート時


DEF(パーセント)進行:
:パーセント> 1の場合
パーセント= 1
RES = INT(50 *パーセント)* '#'
プリント( '\ R [% - 50代]%D %%' %(RES、INT(100 *パーセント))、エンド= '')

recv_size = 0
TOTAL_SIZE = 1025011

:<TOTAL_SIZEながらrecv_size
time.sleep(0.01)#1024バイトのデータをダウンロード

recv_size + = 1024#recv_size = 2048

#印刷の進行状況バー
#印刷(recv_size)
パーセント= recv_size / TOTAL_SIZE#333333分の1024
進捗状況(パーセント)


個人的なテスト:プリントプログレスバー

#印刷の進行状況バー

#印刷(「[% - 50年代 ]」%「#」) これは、フォーマット文字列、-50であるが-され左揃え
#端は=「」ラップのものではありません
#\ rはすべての印刷に行の先頭です

#初级版:
#インポート時間
#RES = ''
#iに対して範囲内(50):
#RES + = '#'
#time.sleep(0.5)
プリント( '\ R [% - 50代]' %のRES、端= '')

#アップグレード:パーセントコントロールの数#1に応じて増加
インポート時

デフ進捗状況(パーセント):

もしパーセント> 1:
パーセント= 1
RES = INT(50 *パーセント)* '#'

印刷( '\ R [% - 50代]%D %%' %(RES、INT(100 *パーセント))、エンド= '')

recv_size =これは、#0、受信したデータの量である
ダウンロードするデータのTOTAL_SIZE = 333333#総量

recv_size <TOTAL_SIZEながら:
time.sleep(0.01)#0.3秒1024バイトを仮定した後、ダウンロードされたデータは、
+ = 1024 recv_size

#印刷の進行状況バーの
パーセント= recv_size / TOTAL_SIZE#333333分の1024
進捗状況(パーセント)


(知識の理解)shutilモジュール
高度なファイル、フォルダ、圧縮されたパケット処理モジュール
shutil.copyfileobj(FSRC、fdst [、長さは ])
別のファイルにファイルの内容をコピーします
。1インポートをshutil
2
。3 shutil.copyfileobjを(開きます( 'old.xml'、 'R&LT')、オープン( 'new.xml'、 'W'))

shutil.copyfile(SRC、DST)は、
ファイルをコピー
1 shutil.copyfile( 'f1.log'、 ' f2.logを「)#先ファイルの必要性は存在しない

)shutil.copymode(SRC、DSTの
権利のみをコピーします。コンテンツ、グループ、ユーザーが変更されないまま
1 shutil.copymode( 'f1.log'、 ' f2.log')#のファイルが存在しなければなりません

shutil.copystat(SRC、DST)を
だけあって、ステータス情報をコピーします。モード・ビットを、atimeの、mtimeを、フラグ
。1 shutil.copystat( 'F1.log'、 'f2.log')#ファイルが存在している必要があります

shutil.copy(SRC、DST)
ファイルとパーミッションのコピーを
。1インポートshutil
2
。3 shutil.copy(「F1。 f2.log ' ''ログイン



インポートshutil。1
2
。3 shutil.copy2( 'F1.log'、 'f2.log')

shutil.ignore_patterns(*パターン)が
shutil.copytree(SRC、DST、シンボリックリンク= Falseを、=なし無視していない)
を再帰的にフォルダにコピー
インポートshutil。1
2
。3 shutil.copytree( 'Folder1に'、 'フォルダ2'、shutil.ignore_patternsは=( '*。PYC'、 '* TMP')無視する)#先のディレクトリが存在しない、注意がディレクトリの親ディレクトリをFOLDER2必要があります書き込み権限、平均除外を無視


輸入shutil

shutil.copytree( 'F1'、 'F2'、シンボリックリンク= Trueの場合、無視= shutil.ignore_patterns( '*。PYC'、 'TMP *'))

「」「
一般的に扱い、ソフトの接続は、新しいファイルを作成することを、ソフトコピーハードリンク接続にコピーを考え
」「」


shutil.rmtree(パス[、IGNORE_ERRORS [、 ONERROR]])
再帰的にファイルを削除する
。1インポートshutil
2
。3 shutil.rmtree( 'Folder1に')

shutil.move(SRC、DST)
再帰コマンドMVに類似したファイルを、移動します、実際には、名前を変更しました。
インポートshutil 1。
2
3 shutil.move( 'Folder1に'、 'FOLDER3')。

shutil.make_archive(BASE_NAME、フォーマット、...)
圧縮ファイルとリターンパスを作成するためには、例えば:ジッパー、タールは
、アーカイブファイルとリターンパスを作成しますたとえば:ZIP、タール
BASE_NAME:アーカイブファイル名は、パスを圧縮することができます。ファイル名は、現在のディレクトリに保存されたちょうどその時、または、指定した場所に保存され
、このような現在のパスにdata_bak =>保存として
、例えば:を/ tmp / data_bak =>保存を/ tmp /に
形式:圧縮されたパケットタイプ、「郵便番号」、「タール「」bztar「」gztar」
ROOT_DIR:圧縮フォルダパス(現在のデフォルトディレクトリ)に
所有者:ユーザー、デフォルトの現在のユーザーの
グループ:グループ、デフォルトの現在の設定
ロガー:ロギング用に、オブジェクトは通常logging.Loggerです

ファイル内の#1 /プログラムカレントディレクトリをパッケージのデータが配置されている
インポート2 shutil
。3 shutil.make_archive RET =( "data_bak"、 'gztar'、ROOT_DIR = '/データを')
。4
。5
。6位ファイル下/データは、パッケージに配置されています/ TMP /ディレクトリ
7インポートshutil
。8 shutil.make_archive RET =( "/ TMP / data_bak"、 'gztar'、ROOT_DIR = '/データ')

 

おすすめ

転載: www.cnblogs.com/python--wang/p/12601582.html