まず、文書処理ワークフロー
1.ファイルを開き、ファイルハンドルを取得し、変数に代入
2.ファイルハンドルにフォロースルー
3.ファイルを閉じます
Rモード、デフォルトモードでは、ファイルはエラーを存在しません。
Wモードでは、ファイルが存在しない、ファイルを作成すると、カバーが存在します
モード、ファイルが存在しない、ファイルを作成するには、コンテンツを書くための方法(使用時にログファイルを書き込むために)、追加書き込みモードを追加されます書くことは特別なモードで、カバレッジを存在しません。
B(RB、WB、AB)モード:添加せずに符号化:UTF-8
1 F = オープン( 'c.txt'、 'RB') 2#プリント(F。読み取る()) 3 プリント(Fを。読み取る()。デコード()) 4 5 fは= オープン( 'd.txt'、 'WB') 6 F。書き込み( '啦啦啦' エンコード( 'UTF-8')) 7 F。近いです()
第二に、基本的な操作
1.ファイルモード
ファイルハンドル=オープン(「ファイルパス」、「モード」)
ファイルを開くと、あなたはどのような方法でファイルのパスを指定し、ファイルを開く必要があります。
モードがあるファイルを開きます。
- R、[読み取り専用モードをデフォルトのモードを、ファイルが存在している必要があり、例外がスローされないがあります]
- 【読めなく、作成し、存在しない場合、次に内容物が空にされる]書き込み専用モード、W
- X、書き込み専用モード[読めないと、それが作成され存在しない場合、エラーがあります]
- [モード可読の追加、それが作成されて存在しない。のみ追加コンテンツが存在します]
1 ##只读模式 2#1、F = オープン(r'c.txt」、エンコード= 'UTF-8') 3 ##の印刷( '====> 1'、F。読み取る()) 4 ##を印刷( '====> 2'、F。読み取る()) 5 ##の印刷(f.readable()) 6の##の印刷(F。のreadline()、終了 = '') 7の##の印刷(F 。readlineの()) 8 ##の印刷( " = " * 20) 9 ##の印刷(F。読む()) 10#の印刷(F。readlines)() 11#fを閉じるを使用() 12 13#モードを書くために:ファイルが存在し、作成し、元のファイルが存在して上書きしない 14#1、F = オープン( " new.pyを」、 'W'、エンコード= 'UTF-8') 15#F.の書き込み( 'N- 1111111111 \') 16#F. writelines([ 'N- \ 2222'、 'N- 2222548 \'、 'N- 978 646 \' 】) 17#fを閉じる使用() 18 19 20#の追加モード:ファイルの追加コンテンツを書き込み、存在しない場合、作成し、ファイルが存在し、上書きしないように記述する方法である 21#1 F = オープンし(「新しい新.py」、 ''、エンコード= 'UTF-8') 22#のF。書き込み( 'nishishuiの\ nの') 23#Fを。writelines([A-A 'を\ n'、B-B 'を\ n']) 24#のF。近いです()
「+」ファイルを同時に読み書きできることを示し
- R +、[リーダ読み取り可能、書き込み可能]
- + W、W Rは{読み取り、書き込み}
- X +、[読み取り、書き込み、読み取り、書き込み}
- +、[書き込み、読み取り、書き込み読み取り}
「B」は、バイト単位での方法を表します
- RBまたはR + B
- W + BまたはWB
- + B W XBの或
- ab 或 a+b
注:オープンな方法でB、読み取りバイトは、コンテンツの種類だけでなく、バイト型の書き込みを提供する必要があるときは、エンコーディングを指定することはできません
以下のように練習、Bモードを使用して、CPツールの要件を書いては、以下のとおりです。
1.コピー、テキスト、ビデオ、写真や他のファイルをコピーすることができ、両方の
1 # b模式 2 f=open('1.jpg','rb') 3 data=f.read() 4 # print(data) 5 f=open('2.jpg','wb') 6 f.write(data) 7 print(data)
三、上下文管理
1. with open('a.txt','w') as f:
pass
2.with open('a.txt','r') as read_f,open('b.txt','w') as write_f:
data=read_f.read()
write_f.write(data)
四、文件的修改
1 import os 2 with open('a.txt','r',encoding='utf-8') as read_f,\ 3 open('a.txt.swap','w',encoding='utf-8') as write_f: 4 for line in read_f: 5 write_f.write(line) 6 7 os.remove('a.txt') 8 os.rename('.a.txt.swap','a.txt')
五、文件内光标移动
一: read(3):
1. 文件打开方式为文本模式时,代表读取3个字符
2. 文件打开方式为b模式时,代表读取3个字节
二: 其余的文件内光标移动都是以字节为单位如seek,tell,truncate
注意:
1. seek有三种移动方式0,1,2,其中1和2必须在b模式下进行,但无论哪种模式,都是以bytes为单位移动的
seek控制光标的移动,是以文件开头作为参照的。
tell当前光标的位置
2. truncate是截断文件,截断必须是写模式,但是不能用w或w+等方式打开,因为那样直接清空文件了,所以truncate要在r+或a或a+等模式下测试效果
1 import time 2 with open('test.txt','rb') as f: 3 f.seek(0,2) 4 while True: 5 line=f.readline() 6 if line: 7 print(line.decode('utf-8')) 8 else: 9 time.sleep(0.2)
分类: python相关