日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

文件基本处理

發布時間:2023/12/18 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文件基本处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 打開文件,將文件句柄賦值給一個變量

2 拿句柄對文件進行操作

3 關閉文件

將一個文件第一行寫道另外一個文件

f = open("test","r",encoding="utf-8") # open找的是系統的編碼 x = f.readlines() f.close() f1 = open("test1","w",encoding="utf-8") f1.write(x[0]) f1.close()

?

with open("test","r",encoding="utf-8") as f,\open("test1","w",encoding="utf-8") as f1: #with open不用close()x = f.read()f1.write(x)

?

北京182 iloveyoubeijing111 test with open("test","rb") as f :#b的方式不能用encodingdata= f.read()print(data)

?

b'\xe5\x8c\x97\xe4\xba\xac182\r\niloveyoubeijing111\r\n' result

\r\n代表回車,字母和數字可以直接顯示,漢字用2進制代替,文件是utf-8格式,所以一個漢字三個字節

print(data.decode("utf-8"))

?

北京182 iloveyoubeijing111 result

?

with open("test","wb") as f:x = "我愛北京天安門"f.write(bytes(x,encoding="utf-8"))#f.write(bytes(x.encode("utf-8")))#效果一樣

?f.encoding表示的是文件打開的編碼,如果不知道文件編碼是什么,不知道怎么打開,可以用latin-1試一下

我愛北京天安門我愛北京天安門 你好么 我很好 test with open("test","r",encoding="utf-8") as f:print(f.readlines()) #windows上回車\r\n占2個字符。python默認處理顯示成\nwith open("test","r",encoding="utf-8",newline="") as f:print(f.readlines()) #windows上回車\r\n占2個字符。python默認處理顯示成\n

?

['我愛北京天安門我愛北京天安門\n', '你好么\n', '我很好'] ['我愛北京天安門我愛北京天安門\r\n', '你好么\r\n', '我很好'] Result

?

with open("test","r",encoding="utf-8") as f:f.readline()print(f.tell()) #光標位置處,即移動的字節處f.readline()print(f.tell())

?

# 3*14+2=44 # 3*3+2+44=55 Result

?

f.seek(3) #移動光標到第3個字節之后,print(f.tell())print(f.readline()) #如果移動的不是3的整數倍,會報錯,因為utf-8無法解碼

?

3 愛北京天安門我愛北京天安門 Result

?

print(f.read(4)) #read讀的是字符 f.truncate(5) #截取0-5字節并保留,所以一定要是w模式 r+.a+,w可以,w+不行 print(f.readlines())

?seek(a,0)從頭開始seek,seek(a,1)從當前光標seek,seek(a,2)從后向前seek,2的時候a需要是負數,文件打開模式需要帶b

print last sentence of the file with open("test","rb") as f:offsets = -3n = 0while True:f.seek(offsets,2)data = f.readlines()if len(data)>1: #如果取到2行以上print("這是最后一行:" ,data[-1].decode("utf-8")) #data列表里是二進制,需要解碼breakoffsets*=2 第一行 第二行 第三行 第四行 最后一行 test 這是最后一行: 最后一行 result

?

轉載于:https://www.cnblogs.com/telma/p/10510355.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的文件基本处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。