ファイルを開く open()
既存のファイルを開くか、新しいファイルを作成します
構文: open(名前、モード、エンコーディング)
name: 開くターゲット ファイルの名前の文字列です (ファイルが存在する特定のパスを含めることができます)。
mode: ファイルを開くモード (アクセス モード) を設定します。r: 読み取り専用、w: 書き込み、a: 追加など。
エンコード: エンコード形式 (UTF-8 を推奨)
例:
f = open('test.txt', 'r', encoding="UTF-8") # 注意:编码格式需要用关键字作为参数传递
print(type(f)) # <class '_io.TextIOWrapper'>
ファイルを読み取る
read() メソッド: データの長さを読み取ります。
構文: file object.read(num) ----- 結果: string
num はファイルから読み込むデータの長さ (単位はバイト) を表し、num が渡されない場合は、ファイル内のすべてのデータを読み込むことを意味します。
例:
f = open('test.txt', 'r', encoding="UTF-8")
print(f"读取10个字节的结果{f.read(5)}") # 读取内容:我是测试文
print(f"read方法读取全部内容是{f.read()}") # 注意:这次会接着上一次接着读取
readlines() メソッド: すべて読み取り ------ 結果: リスト
構文: file object.readlines()
readlines は、ファイル全体の内容を 1 行ずつ一度に読み取り、各行のデータを要素としたリストを返します。
例:
f = open('test.txt', 'r', encoding="UTF-8")
print(f"read方法读取全部内容是{f.read()}") # 读取全部
lines= f.readlines()
print(type(lines)) # <class 'list'>
print(lines) # 空值,原因:第2行已经读取了全部
readline() メソッド: 一度に 1 行を読み取ります ----- 結果: 文字列
構文: file object.readlines()
例:
f = open('test.txt', 'r', encoding="UTF-8")
line1 = f.readline()
print(type(line1),line1) # <class 'str'> 我是测试文件1 (读取一行内容)
for ループはファイル行を読み取ります
例:
# f = open('test.txt', 'r', encoding="UTF-8")
# for line2 in f:
# print(line2) # 读取每一行数据
for line3 in open("test.txt","r",encoding="UTF-8"):
print(line3) # 读取每一行数据
ファイルを閉じる close() --- ファイルの占有を解除します
構文: file object.close()
オープンな構文で
構文: ファイル名として open(name,mode,encoding) を使用:
with open ステートメントブロック内でファイルを操作することにより、操作完了後にクローズファイルを自動的に閉じることができ、close メソッドの忘れを防ぐことができます。
例:
with open('test.txt', 'r', encoding="UTF-8") as f:
for line4 in f:
print(line4)
ファイル書き込み write()
ファイルが存在する場合は上書きされ、ファイルが存在しない場合は作成されます。
構文: file object.write() --- w モードでファイルを開きます。
知らせ:
write が直接呼び出された場合、コンテンツは実際にはファイルに書き込まれませんが、バッファと呼ばれるプログラムのメモリに蓄積されます。flush が呼び出された場合、コンテンツは実際にファイルに書き込まれます。これは、ファイルに対する頻繁な操作を避けるため
です
。非効率につながるハードディスクの使用を拒否する (大量に保存し、一度にディスクに書き込む)
ファイル更新のフラッシュ()
構文: file object.flush()
例:
# f = open("test.txt", "w", encoding="UTF-8")
# f.write("hello") # 文件写入:内容写入内存中
# f.flush() # 文件刷新:将内存中积攒的内容,写入到硬盘的文件中
# f.close() # 关闭文件:内置了flush()功能
f = open("test.txt", "w", encoding="UTF-8")
f.write("你好") # 会覆盖吧上面写入的内容
ファイル追加操作 write()
構文: file object.write() --- モードを通じてファイルを開きます。
open("test.txt","a",encoding="UTF-8")
f.write("\nhi1") # 换行输入
f.flush()
f.close()
小型ケース:
# 小案例
fr = open("test.txt", "r", encoding="UTF-8")
fw = open("test1.txt", "a", encoding="UTF-8")
for i in fr:
# print(i)
if i.count("测试") >= 1:
continue
else:
fw.write(i)
print(fw)
fr.close()
fw.close()
# fr = open("test.txt", "r", encoding="UTF-8")
# fw = open("test1.txt", "a", encoding="UTF-8")
# for i in fr:
# line = i.strip() # 去除换行符
# if line.split(",")[4] == "测试": # 以 , 分割字符串
# continue
# else:
# fw.write(line)
# fw.write("\n") # 添加换行符
# fr.close()
# fw.close()