ディレクトリ
三つのファイルオープンモード
ベース・モード動作は三つのファイル(デフォルトの動作モードは、モードRである)から構成されています。
- Rリードモード
- モードライト・ワット
- モードAPPEND
ファイル形式の内容を読む(Bモード用コンテンツを読み書きするデフォルトモード)二種類があります。
- トンのテキストモード
- bモードのバイト
多分モードは単独で使用することはできませんB、T、およびRは、モード、Wモード、連動モードのいずれかを必要とされていますことに注意してください。
まず、ファイルオープンモード(Rモード)
R:読み取り専用モードを読み、読み出しのみ可能ではなく、書き込み、ファイルを与えられて存在していません。
f = open('F:\python自学\db.txt',mode='rt',encoding='utf-8')
data = f.read()
print(data)
print(f"type(data):{type(data)}")
f.close()
#输出:
name,123,1000
type(data):<class 'str'>
# rb:read by bytes
f = open('F:\python自学\db.txt',mode='rb')
data = f.read()
print(data)
print(f"type(data):{type(data)}")
f.close()
#输出:
b'name,123,1000\r\nname,123,1000000000\r\nname,123,100000\r\nchen,456,1222555444556\r\nchen,456,456\r\n'
type(data):<class 'bytes'>
つの読み出しは、スペースを読み込みます場合は、ファイルコマンドを読み込むf.read()は、ファイルの末尾に移動します。
f = open('F:\python自学\db.txt',mode='rt',encoding='utf-8')
data1 = f.read()
data2 = f.read()
print('data1:',data1)
print('data2:',data2)
f.close()
#输出:
data1: name,123,1000
name,123,1000000000
name,123,100000
chen,456,1222555444556
chen,456,456
data2:
ファイルが非常に大きい場合、すべてのコンテンツf.read()ファイルを読むために1時間あるので、それはメモリが鳴り恐れがあり、つまり、コンピュータが立ち往生。ファイルの内容を読み取るためにf.readline()またはf.readlinesを()を使用することができます。
# f.readline()/f.readlines()
f = open('F:\python自学\db.txt',mode='rt',encoding='utf-8')
data1 = f.readline()
data2 = f.readlines()
print('data1:',data1)
print('data2:',data2)
f.close()
#输出:
data1: name,123,1000
data2: ['name,123,1000000000\n', 'name,123,100000\n', 'chen,456,1222555444556\n', 'chen,456,456\n']
ファイルモードワットの第二に、オープンモード
W:文書のみがファイル書き込み内容がクリアされた後、時間がある読み取れない、書き込み、ファイルは、ファイルが作成された後に内容が書き込まれたときには存在しません。
#wt
f = open('32w.txt',mode='wt',encoding='utf-8')
print('f.readable()',f.readable())# 判断文件是否可读
f.write('chenshuaibi\n')
f.write('what,厉害')
f.write('chen,佩服啊')
f.flush()#刷新,立刻将文件内容刷到硬盘
f.close()
#输出:
f.readable() False
#wb,编码成bytes类型
f = open('33w.txt',mode='wb')
f.write('chenshuaibi'.encode('unicode_escape'))
print("type('chenshuaibi'.encode('unicode_escape'))",type('chenshuaibi\n'.encode('unicode_escape')))
f.close()
#输出:
type('chenshuaibi'.encode('unicode_escape')) <class 'bytes'>
第三に、パターンのファイルを開きます
A:あなたが追加することができます。ファイルは、ファイルの末尾に書き込み、存在しています。内容が書き込まれたときにファイルが作成された後にファイルが存在しません。
#at
f = open('35a.txt',mode='at',encoding='utf-8')
print("f.readable()",f.readable())
f.write('chen真帅')
f.close()
#输出:
f.readable() False
第四に、開かれたバイナリファイルを読み込みます
すべてのファイルがハードディスクバイナリ形式で格納されているため、Bモードは、一般的なパターンであることに留意すべきである:Bモードは、符号化パラメータを追加してはいけません、ファイルの読み書き、バイナリコーディングため実行できません
try:
import requests
response = requests.get(
'http://www.chenyoude.com/Python从入门到放弃/文件的三种打开模式-mv.jpg?x-oss-process=style/watermark')
data = response.content
f = open('mv.jpg?x-oss-process=style/watermark', 'wb')
f.write(data)
print('done...')
f.close()
except Exception as e:
print(e, '报错了,那就算了吧,以后爬虫处会详细介绍')
行われ...
f = open('34w.txt', 'wb')
f.write('nick 好帅啊'.encode('utf8'))
f.close()