檔案
1.唯讀(r,rb)rb是讀位元組
2.只寫(w,wb)#清除之前的東西,重新寫進去內容。
3.追加(a,ab):表示寫東西
4.r+ 讀寫
5.w+ 寫讀
6.a+ 寫讀(追加寫讀)
我們使用open()函式來開啟乙個檔案,獲取到檔案控制代碼,然後通過檔案控制代碼就可以進行各種各樣的操作了。根據開啟方式的不同弄能夠執行的操作也會有相應的差異。
f = open(「**.txt」,mode = "r", encoding="utf-8")
content = f.read() #檔案控制代碼讀取內容
print(content)
f.close() #關閉控制代碼
檔案路徑
相對路徑和絕對路徑
相對路徑:相對於你當前程式所在的資料夾
絕對路徑:1.從磁碟根目錄尋找 2.網際網路上的乙個絕對路徑
../ 表示上一層資料夾(相對於當前所在的資料夾)
f = open(「小模特」,mode = 「w」 encoding=「utf-8」) #w模式,寫入之前會清除掉原來的內容,如果是a模式,在原來的基礎上進行追加內容
f.write("杜十娘」)
f.flush()
f.close()
f = open(「小**」,mode = 「rb」)
bs = f.read()
print(bs) #列印出來的是位元組
print(bs.decode("utf-8")) #需要解碼,列印出來的是檔案的內容
f.close()
f = open(「小**」,mode = 「rb」)
bs = f.write("你好啊".encode("utf-8"))
f.close()
r+模式:先讀後寫,r+模式,預設情況下,游標在檔案的開頭,必須
先讀後寫
才是安全的,
如果是先寫後讀,會出錯
1. f = open(「老師點名」,mode="r+",encoding = "utf-8")
s = f.read()
f.write("周杰倫」)
print(s)
f.close()
2. f = open("精品",mode="r+" ,encoding = "utf-8")
s = f.read(3) #讀3個字元,現在的游標應該在3個位元組之後,但是r+模式下,不管你前面讀了幾個,後面去寫,都是在末尾寫
f.write(「馬虎疼」)#在沒有任何操作之前進行寫,即在開頭寫;如果讀取了一些內容後在寫,寫入的是最後。
print(s)
w+模式:w操作清空原來的內容
f = open(「寫讀」,mode =「w+」,encoding="utf-8")
f.write("今天天氣」)
f.seek(0)
s = f.read()
print(s) #移動游標才能列印出來「今天天氣」
f.flush()
f.close()
游標:
seek(n)游標移動到n位置,注意,移動的單位是byte,所以如果是utf-8的中文部分要是3的倍數。
移動到開頭:seek(0)
移動到結尾:seek(0,2)seek的第2個引數表示的是從哪個位置進行偏移,預設是0,表示開頭,1表示當前位置,2表示結尾。
tell()告訴當前游標的位置
#將吃的檔案中的肉換成菜,做法是新建吃的副本檔案,改完後,把吃的檔案刪除掉,並將吃的副本檔案重新命名為吃的。
import os
with open ("吃的",mode="r",encoding="utf-8") as f1,open("吃的_副本",mode=「w」,encoding=「utf-8」) as f2:
s =f1.read()
ss=s.replace("肉","菜")
f2.write(ss)
os.remove(「吃的」)
os.rename("吃的副本","吃的)
readline()和readlines()
with open ("吃的",mode="r",encoding="utf-8") as f1,open("吃的_副本",mode=「w」,encoding=「utf-8」) as f2:
for line in f1:
s = line.replace("肉」,"菜」)
f2.write(s)
python08 檔案操作之讀
20 00 2019 1 15 周二 檔案操作 open 相當於是乙個應用程式,通過open函式向作業系統上呼叫應用程式。賦值給f然後在進行操作。f open 九門 encoding utf 8 encoding utf 8 如果不加入這一行,會因為轉碼問題報錯。利用open 開啟檔案 data f...
Python08檔案的使用
a open 檔名 開啟模式 編碼方式 編碼方式 utf 8預設可以忽略 開啟模式 讀a.read size 讀入前size的長度 a.readline size 讀入一行,的前size的長度 a.readlines hint 讀入所有行,以行形成列表,的前hint的長度 寫a.write s 寫入...
08 檔案操作
位元組流 inputstream和outputstream 過濾流 bufferedinputstream和bufferedoutputstream 過濾流用於給流增加乙個緩衝的功能,緩衝區越大,效率越高,典型的犧牲空間換時間 08.01.txt public class testtxt 寫入文字 ...