1. 程式人生 > >Python隨心記--文件操作處理 open()

Python隨心記--文件操作處理 open()

操作 偏移 所在 odin lines gbk 編碼 close 換行

文件操作處理  open()
r--只讀 w---只寫 a---追加 x---只寫
f = open(xxx,r,encoding=utf-8)   #默認編碼gbk、只讀
data = f.read()   #讀取文件
print(data)
print(f.readable(),end = ‘‘)   #可讀返回True  end = ‘‘ d代表不換行
print(f.readline())   #讀取一行
print(f.readlines())   #讀取多行
f.close()   #關閉文件
f = open(xxx,w,encoding=
utf-8) #如果文件存在會清空文件內容,不存在就新建文件 f.write(woyongchun) #不換行 f.write(woyongchun\n在一起\n) #會換行 f.writelines([555\n,5666\n]) #寫的參數必須是字符串 f.close() #關閉文件
追加
f = open(xxx,a,encoding=utf-8)   #如果文件存在會清空文件內容,不存在就新建文件,追加到文件的追後
f.write(wodepanpangchun)
f.close()   #關閉文件
r+
f = open(
xxx,r+,encoding=utf-8) #如果文件存在會清空文件內容,不存在就新建文件,追加到文件的追後 data = f.read() print(data) f.write(12212) #如果沒有read(),直接寫會覆蓋 f.close() #關閉文件
修改文件內容
f = open(xxx,r,encoding=utf-8)   #讀出來的內容為一個列表類型,可for循環
data = f.readlines()   #存起來
f.close()   #關閉文件
dst_f = open(xxx,w,encoding=utf-8
) #存到新的文件 dst_f.readlines(data[0]) dst_f.close()
不需要close()寫法
with open(a.txt,w,encoding=gbk) as f:   #不需要關閉文件系統自動關閉文件
    f.write(1111\n)
with open(a.txt,r) as f,open(a.txt,w,encoding=gbk) as dst_f:   #換行方式:\回車
with open(a.txt,r) as src_f,        open(new.txt,w,encoding=gbk) as dst_f:
    data = src_f.read()
    dst_f.write(data)
b的方式讀取
f = open(test.py,rb)   #以字節的方式不能加編碼格式
data = f.read()   #讀取以字符為單位
print(data.decode(utf-8))   #轉碼
b的方式寫入
f = open(a.txt,wb)   #以字節的方式不能加編碼格式
data = f.write(bytes(11w1\n,encoding=utf-8))   #需要bytes(x,encoding=‘utf-8‘)
datas = f.write(11w1www\n.encode(utf-8))
b的方式追加
f = open(a.txt,ab)   #以字節的方式不能加編碼格式
data = f.write(bytes(11w1\n,encoding=utf-8))   #需要bytes(x,encoding=‘utf-8‘)
datas = f.write(11w1www\n.encode(utf-8))
關於編碼問題
  
f = open(a.txt,r+,encoding = utf-8,newline=‘‘)
print(f.encoding)   #獲取編碼格式
f.flush()   #刷新文件就會寫入文件
print(f.tell())   #光標目前所在位置 光標移動以字節為單位
f.seek(3,0)   #控制光標的移動
f.truncate(10)   #以字符微單截取
循環文件,一行一行的循環
f = open(x.txt,rb)
for i in f:   
    print(i)
seek讀取文件最後一行(原理:倒著讀,不斷增加偏移量)
f = open(a.txt,rb)
for i in f:
    offs = -10
    while True:
        f.seek(offs,2)   #倒著讀
        data = f.readlines()
        if len(data) > 1:
            print(data[-1].decode(utf-8))
            break
        offs *= 2

Python隨心記--文件操作處理 open()