1. 程式人生 > >python-17 檔案操作

python-17 檔案操作

利用with語句


open()
write()
writelines()  寫的是列表

不用手動關閉,系統自動關閉,然後釋放資源。

with open(路徑)as f
f 物件的名字 自定義的名字

with open("D:\data.txt","w")as f:
    f.write("12334567\n")
    f.writelines(["abc\n","def\n"])


read() 返回一個字串
readlines() 讀取多行返回的是一個列表
readline()  讀取一行

Eg1:
print(f.readline())
print(f.read())
print(f.readlines())
f.close()
結果:
12334567

abc
def

[]


Eg2:
f = open("D:\data.txt","r")
print(f.readline())
print(f.readlines())
print(f.read())
f.close()
結果:

12334567

['abc\n', 'def\n']

改正程式碼:

1.路徑前加上r 避免轉義
2.加上編碼方式
with open(r"D:\data.txt","r",encoding="utf-8")as f:
    for s in f.readlines():
        print(s,end=" ")

結果
12334567
 abc
 def

獲取系統的預設編碼

import sys
print(sys.getdefaultencoding())

結果:
utf-8

二進位制檔案讀寫

寫
模式: wb
寫的方式前面加 b
with open(r"D:\data1.txt","wb")as f:
    f.write(b"123456\n")

讀

with open(r"D:\data1.txt","rb")as f:
    b =f.read()
    print(b)

結果:
b'123456\n'

隨機檔案讀寫

模式:w+b

with open(r"D:\data1.txt","w+b")as f:
    f.write(b"123456\n")
    

讀取:
模式 : r+b
with open(r"D:\data1.txt","r+b")as f:
    b =f.read()
    print(b)