Pythonのファイル入門
1、ファイル操作
ファイルの場所を探します
ダブルクリックして開きます
何かします
R読み取り(読み取り)Wライト(書き込み)を添加A-
追加書き込み(バイト) - バイトの広告を書き、wd--空の書き込みバイトを読んrd--
R + - リーダーW + - W R A + - 加算読み出し
ファイルを閉じます
オープン():ファイルを開くために、オペレーティング・システムによって制御オープン、オープンパイソン
オープン( "T1"、 "R"、エンコード= "UTF-8")//オープン( "パス・ファイル"、 "操作" および "ファイル符号化された形式")
場所ファイルファイル
デフォルトモードは、rを書き込まないことです
エンコードエンコードのファイル
Fファイルハンドル
ファイルは一度しか読むことができます
(1)読み出し動作
<1> R - 読みます
f = open("D:\Python_s25\day08\小姐姐电话号",mode="r",encoding="utf-8")print(f.read()) # 全部读取
print(f.read(3)) # 按照字符读取
print(f.readline()) # 默认尾部有一个\n
print(f.readline().strip()) # 读取一行
print(f.readline().strip()) # 将\n去除
print(f.readlines()) #一行一行读取,全部存储在列表中
パス:
絶対パス:起動するディスク(Cディスク)を検索
相対パス:相対ファイルへのパスを見つけるために
ルートをエスケープ:
1."D:\\Python_s25\\day08\\t1"
2.r"D:\Python_s25\day08\t1" -- 推荐使用
<2> RB - バイトをお読みください。
f = open("timg.jpg",mode="rb")
print(f.read()) # 全部读取
print(f.read(3)) # 按照字节读取
print(f.readline()) # 按照行进行读取
print(f.readlines())
RとRBの違い:
Rbが必要とされない、エンコードを指定1.r(バイト動作、エンコードを指定することはできません)
2.rモードは、(3)文字の読みに応じて、RBモード(3)バイト単位で読み出し読み出されたリード
ファイルが大きい場合には読みとreadlines、メモリオーバーフローが存在します
解決策:ファイルが大きい場合には、読むためにforループを使用します(少しだけを表示)
インタビューの質問:
f = open('t1',mode="r",encoding="utf-8")
for i in f:
print(i.strip())
(2)書き込み:
<1>ワット - クリアライト(ライト・テキスト)
まず、空のファイルが(あなたがファイルを開いたときに空です)
への書き込み
モードをWと、現在のファイルのファイルがある場合は、ファイルは、ファイルを作成されません
ff = open("a1",mode="w",encoding="utf-8")
ff.write("123") # 写的内容必须是字符串
ff = open("a1",mode="w",encoding="utf-8")
ff.write("我是一个字符串串") # 写的内容必须是字符串
ff = open("a1",mode="w",encoding="utf-8")
ff.write("[1,2,3,4]\n") # 写的内容必须是字符串
ff.write('1111\n') # 写的内容必须是字符串
ff.write('2222\n') # 写的内容必须是字符串
ff = open("a1",mode="w",encoding="utf-8")
ff.write("[1,2,3,4]\n") # 写的内容必须是字符串
ff.write('1111\n') # 写的内容必须是字符串
ff.write('2222\n') # 写的内容必须是字符串
<2> WB - クリアライト(書き込みバイト)
f = open('timg.jpg',mode="rb")
f1 = open("g1.jpg",mode="wb")
content = f.read()
f1.write(content)
(3)追加操作:
<1> - 追加(テキスト)を書きます
f = open("b1",mode="a",encoding="utf-8")
f.write("你好啊\n")
f.write("我好啊\n")
f.write("他好啊\n")
f.write("大家好啊\n")
<2> AB - 追加書き込み(バイト)
(4)+アクション:
<1> R +書き込み(やや)
坑 -- 使用方式是错误
f = open("b1",mode="r+",encoding="utf-8")
f.write("今天是周一") # write是清空写
print(f.read())
正确的操作:
f = open("b1",mode="r+",encoding="utf8")
print(f.read())
f.write("今天是周一")
<2> + W W R(やや)
f = open("b1",mode="w+",encoding="utf-8")
f.write("今天是周一")
f.seek(0) # 移动光标
print(f.read())
f = open("b1",mode="w+",encoding="utf-8")
f.write("今天是周一")
f.seek(0) # 移动光标
f.write("啊啊啊啊啊啊")
f.seek(0)
print(f.read())
<3> A +追加の読み取り
f = open("b1",mode="a+",encoding="utf-8")
f.write("今天是周一")
f.seek(0) # 移动光标
f.write("啊啊啊啊")
print(f.read())
(5)その他のアクション:
<1>カーソルを移動:シーク()
seek() 移动光标
f.seek(0,0) # 移动光标到文件的头部
f.seek(0,1) # 移动光标到当前位置
f.seek(0,2) # 移动光标到文件末尾
f.seek(6) # 移动6个字节。光标是按照字节移动
f = open("a1","r",encoding="utf-8")
print(f.read(5))
f.seek(0,0) # 移动光标到文件的头部
f.seek(0,1) # 移动光标到当前位置
f.seek(0,2) # 移动光标到文件末尾
print(f.read())
f = open("c1","r",encoding="gbk")
f.seek(6) # 光标是按照字节移动
print(f.read(3))
<2>表示カーソル:教えて - チャールズ・カーソル
tell 查光标
f = open("c1","r",encoding="gbk")
print(f.read(3))
print(f.tell()) # 按照字节进行计算
輸入OS#は、オペレーティング・システム・インターフェースと対話<2>ファイルを変更するには
f = open('a2',"r",encoding="utf-8")
f1 = open("a1","w",encoding="utf-8")
for i in f:
i = i.replace("日","天")
f1.write(i)
f.close()
f1.close()
os.remove("a2") # 删除不能找回
os.rename("a1","a2")
f = open('a2',"r",encoding="utf-8")
f1 = open("a1","w",encoding="utf-8")
for i in f:
i = i.replace("天","日")
f1.write(i)
f.close()
f1.close()
os.rename("a2","a3")
os.rename("a1","a2")
<3>を開いた状態で
自動的にファイルをクローズ
同時に複数のファイル
テストサイト:
import os # 操作系统交互的接口
f = open('a2',"r",encoding="utf-8")
f1 = open("a1","w",encoding="utf-8")
i = f1.read().replace("天","日") # 将文件中全部内容读取 容易导致内存溢出f1.write(i)
f.close()
f1.close()
os.rename("a2","a3")
os.rename("a1","a2")
with open("a3","r",encoding="utf-8")as f,\
open('a2',"r",encoding="utf-8")as f1:
print(f.read())
print(f1.read())