㈠ python讀取txt時被修改
有少量數據存在txt文件中,如何進行讀取、寫入和修改呢,今天小編就分享下:
python常用的讀取文件函數有三種read()、readline()、readlines()
1、read() : 一次性讀取所有文本
with open("1.txt", "r", encoding='utf-8') as f: #打開文本
data = f.read() #讀取文本
print(data)
2、readline() : 讀取行的內容
with open('1.txt', 'r', encoding='utf-8') as f:
data = f.readline()
print(data)
3、readlines():讀取全部內容,以數列的格式返回結果,可以配合for循環使用。
with open('1.txt', 'r', encoding='utf-8') as f:
data = f.readlines()
print(data)
image.png
with open('1.txt', 'r', encoding='utf-8') as f:
for i in f.readlines():
i = ann.strip('\n') #去除文本中的換行符
print(i)
4、with open()寫法與open()的區別
1666058828369926.png
image.png
open()完成後必須調用close()方法關閉文件,因為文件對象會佔用操作系統的資源,並且操作系統同一時間能打開的文件
數量也是有限的,由於文件讀寫時都有可能產生IOError,一旦出錯,後面的f.close()就不會調用。with open()則可以避免這樣的情況。
5、python文件讀寫模式
r : 讀取文件,若文件不存在則會報錯
w: 寫入文件,若文件不存在則會先創建再寫入,會覆蓋原文件
a : 寫入文件,若文件不存在則會先創建再寫入,但不會覆蓋原文件,而是追加在文件末尾
r+ : 可讀、可寫,文件不存在也會報錯,寫操作時會覆蓋
w+ : 可讀,可寫,文件不存在先創建,會覆蓋
a+ : 可讀、可寫,文件不存在先創建,不會覆蓋,追加在末尾
rb:以二進制方式打開,只能讀取文件。如果文件不存在,會發生異常
wb:以二進制方式打開,只能寫入文件。如果文件不存在,創建該文件; 如果文件存在,會清空,在打開(覆蓋)
rt:以文本讀方式打開,只能讀文件。不存在報錯
wt:以文本寫方式打開,只能寫文件。 不存在創建;存在覆蓋
rb+:以二進制方式打開,可讀、寫文件。如果文件不存在,會發生異常
wb+:以二進制方式打開,可讀、寫文件。如果文件不存在,創建該文件;如果文件存在,會清空,在打開(覆蓋)
㈡ 求Python讀取文件後寫入內容替換原內容的辦法
先將內容 讀取到內存中修改,然後使用w模式直接覆蓋原文件。
如果文件較大,可以分割寫入一個新文件,然後將原文件刪除,將新文件重命名為原文件。
㈢ 用python讀取文本文件,對讀出的每一行進行操作,這個怎麼寫
用python讀取文本文件,對讀出的每一行進行操作,寫法如下:
f=open("test.txt","r")
whileTrue:
line=f.readline()
ifline:
pass#dosomethinghere
line=line.strip()
p=line.rfind('.')
filename=line[0:p]
print"create%s"%line
else:
break
f.close()
㈣ python讀取txt文件,查找到指定內容,並做出修改
你可以把txt的修改後的內容給重新寫入文件,這樣子會覆蓋之前的文件
㈤ Python如何讀文件內容修改後寫回原文件
withopen(filename)asf:
file_str=f.read()
withopen(filename,'w')asf:
f.write(file_str)
㈥ gitpython如何修改文件內容不影響格式
三種方法
_弧⑿薷腦募絞?
_ef alter(file,old_str,new_str):
?
?"""
_婊晃募械淖址?
?:param file:文件名
?:param old_str:就字元串
?:param new_str:新字元串
?:return:
?
?"""
_ile_data = ""
?
_ith open(file, "r", encoding="utf-8") as f:
?
_or line in f:
?
_f old_str in line:
?
_ine = line.replace(old_str,new_str)
?
_ile_data += line
?
_ith open(file,"w",encoding="utf-8") as f:
?
_.write(file_data)
?
_lter("file1", "09876", "python")
?
__言募諶鶯鴕薷牡哪諶菪吹叫攣募薪寫媧⒌姆絞?
?
?2.1 python字元串替換的方法,修改文件內容
?
_mport os
?
_ef alter(file,old_str,new_str):
?
?"""
?
_婊壞淖址吹揭桓魴碌奈募校緩蠼募境攣募奈次募拿?
?
?:param file: 文件路徑
?
?:param old_str: 需要替換的字元串
?
?:param new_str: 替換的字元串
?
?:return: None
?
?"""
?
_ith open(file, "r", encoding="utf-8") as f1,open("%s.bak" % file, "w", encoding="utf-8") as f2:
?
_or line in f1:
?
_f old_str in line:
?
_ine = line.replace(old_str, new_str)
?
_2.write(line)
?
_s.remove(file)
?
_s.rename("%s.bak" % file, file)
?
_lter("file1", "python", "測試")
?
?2.2 python 使用正則表達式 替換文件內容 re.sub 方法替換
?
_mport re,os
?
_ef alter(file,old_str,new_str):
?
_ith open(file, "r", encoding="utf-8") as f1,open("%s.bak" % file, "w", encoding="utf-8") as f2:
?
_or line in f1:
?
_2.write(re.sub(old_str,new_str,line))
?
_s.remove(file)
?
_s.rename("%s.bak" % file, file)
㈦ python里怎樣替換,修改文本內容
當我們讀取文件中內容後,如果想要修改文件中的某一行或者某一個位置的內容,在python中是沒有辦法直接實現的,如果想要實現這樣的操作只能先把文件所有的內容全部讀取出來,然後進行匹配修改後寫入到新的文件中。
實例代碼如下所示:
備註:
1. 舊文件的內容
hello,world
yanyan is good girl
Good day is good day
2. 新文件在代碼執行後的內容
hello,world
yanyan is good girl
hello,yanyan
3. 需要注意的是許可權的問題,對於舊文件必須要有讀取許可權,對於新的文件必須要有寫入許可權