図1に示すように、ファイルモード
Xモード(運転制御ファイルのモード)
×:
書き込み専用モード、読み取り不可能、
それは存在しないが作成され、エラーがあります。
ファイルが読み込まれ、制御モードの内容を書き込む
T:
1、列単位の(ユニコード)として読み取られる
2、唯一のテキストファイル
符号化パラメータを指定しなければならない3文字コードを指定する必要があり、
バイナリモード:bは
1、リーダバイトである
すべてのファイルが可能のため、2
3、符号化パラメータを指定してはなりません文字エンコーディングを指定してはいけません
:概要
プレーンテキストファイル操作モードtのヘルプ、私たちのリンクのエンコードの保存およびデコード、Bには、1をこの時間tがより便利モードであるように、符号化及び復号化マニュアル必要とモード
2、使用するモードB(等の画像、ビデオ、オーディオなど)のみ非テキストファイル
Bモードアプリケーション:
#ファイルのコピーツール INPUT =(のSRC_FILEで' ソースファイルパス>>:' ).strip() とdst_file = INPUT('ターゲット:ファイルパス>> ' .strip()) を開く(R&LTと' {} 'のSRC_FILEで.format( )、MODE = ' RB ' )AS F1、\ 開く(R&LT ' {} ' .format(及びdst_file)、MODE = ' WB ' )AS F2: #RES = f1.read()が大きすぎるメモリであるフットプリント# #F2。書き込み(RES) のためのラインでのF1: f2.write(ライン)
ファイル操作の2他の方法
2.1読み出し動作関連
2.1.1ループは、ファイル読み込み
Fの行のための行によってモード1リードデータ線(データの単一ラインが長い時間をかけてコンテンツに時間の原因となる場合大)。
#1 開く(R ' g.txt '、モード= ' RT '、=コード' UTF-8 ' )、Fとおり のための行にF: プリント(ライン(線)LEN) #2 開く(R ' g.txt 'モード= ' RB ' Fなど) のための行にF: プリント(ライン) #3 オープン(rの' test.jpg 'モード= ' RB ')Fとして: のための行にF: プリント(ライン)
図2の実施形態で、データ自身の制御量たびにデータが読み出されます
オープン(rの' test.jpg '、MODE = ' RB ' :)は、fのように しばらく真: RES = f.read(1024) #1024 の場合でlen(RES)== 0: ブレーク #ない解像度の場合: #の ブレーク 印刷(LEN(RES))
2.1.2f.readlineとf.readlinesは
readlineの:読み取りラインを
オープンと(R ' g.txt '、モード= ' RT '、=コード' UTF-8 ' )、Fとして: #RES1 = f.readline() #RES2 = f.readline() #のプリント(RES2) 一方、真: 行 = f.readline() 場合でlen(行)== 0: ブレーク プリント(ライン)
readlines:コンテンツを一度にメモリに読み込まれ、各行「\ n」は分割のリストを生成します。(強調:メモリ・オーバーフロー原因総会を介してコンテンツ場合f.read()とf.readlines()は、メモリに一回の内容を読んでいます)
オープンと(R ' g.txt '、モード= ' RT '、=コード' UTF-8 ' )、Fとして: RES = f.readlines() プリント(RES)
2.2書き込み関連の操作
f.writelines():文字列のシーケンスをファイルに書き込むことができ、このシーケンスの文字列は、反復オブジェクトによって生成することができます。
オープンと(' h.txt '、モード= ' 質量'、=コード' UTF-8 ' Fとして): #f.write( '1111 \ N222 \ n3333 \ n') #1 、L = [ '11111 \ n'は、 '2222'、 '3333'、4444] L = [ ' 11111 \ n '、' 2222 '、' 3333 ' ] #Lの行のための: # f.write(ライン) f.writelines(L) オープンと(' h.txt '、モード= ' WB ' Fとして): #1 L = [ # '1111aaa1 \ n'.encode(' UTF-8 ')、 # ' 222bb2'.encode( 'UTF-8')、 # '33eee33'.encode(' UTF-8「) #] #は1を追加した:場合純粋な英語の文字を直接得ることができるプレフィックスはタイプBバイト #のLを= [ # b'1111aaa1 \ N- ' #の b'222bb2' 、 #1 b'33eee33 ' #] #のサプリメント2:'オン' .encode(」UTF 8で'コード=' UTF-8 '))バイト(に相当する' L = [ バイト(' ああに' =コード、' UTF-を8 ' )、 (バイト'パンチ金型「 =エンコード、」UTF-を。8' )、 バイト(' 兄弟' =コード、' UTF-を8 ' ) ] f.writelines(L)
f.flush:すぐにハードディスクにデータを書き込みます。
(オープンと' h.txt '、モード= ' 質量'、=コード' UTF-8 ' :Fなど) f.write(' 哈' ) #1 )(f.flush
その他2.3
(オープンと' h.txt '、モード= ' 質量'、=コード' UTF-8 ' :Fなど) 、印刷(f.readable()) プリント(f.writable()) プリント(f.encoding) プリント( f.name) プリント(f.closed)
3.高度な制御ファイルポインタの操作
ポインタ移動手段は、バイト/バイトです。唯一の特別な場合:Tパターンで読み出し(N)、n文字の数を表します。
(オープンと' aaa.txt '、モード= ' RT ' =コード、' UTF-8 ' :Fとして) RES = f.read(4 ) プリント(RES)
f.seek(N、モード):nは移動バイト数を指し
#モード: #モード0:基準ファイルヘッダは f.seek(9 、0) f.seek( 3,0) #3。 #モード1:基準電流ポインタ位置 f.seek(9,1 ) f.seek( 3,1) #12は #モード2:基準位置は、ファイルの終わりである後方に移動すべき f.seek(-9,2) #3。 f.seek(-3,2) #9。 #強調:専用モード0 tに使用されてもよい、1,2はモードBで使用しなければなりません
f.tell():現在のファイルポインタの位置を取得します。
オープンと(' aaa.txt '、モード= ' RB ' :)Fとして f.seek( 9,1 ) f.seek( 3,1) #12 プリント(f.tell())