Python --- ファイルのオープン、読み取り、書き込み

ファイルを開く 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()

おすすめ

転載: blog.csdn.net/weixin_52053631/article/details/132924640