Einführung in Python zur Implementierung von Volltext- oder Einzelzeilenersetzungen für Dateivorgänge

迷茫
Freigeben: 2017-03-25 17:17:46
Original
1137 Leute haben es durchsucht

PythonBeim Ändern einer Datei wird im W-Modus die Originaldatei gelöscht/überschrieben. Sie können es zunächst mit read (r) öffnen, in den Speicher schreiben und dann mit write (w) öffnen.

  1. Geschmack im Text durch Verkostung ersetzen

Yesterday when I was young
昨日当我年少轻狂
The taste of life was sweet
生命的滋味是甜的
As rain upon my tongue
Nach dem Login kopieren
#将文件读取到内存中
with open("./fileread.txt","r",encoding="utf-8") as f:
	lines = f.readlines()  
#写的方式打开文件
with open("./fileread.txt","w",encoding="utf-8") as f_w:
	for line in lines:
		if "taste" in line:
         #替换
			line = line.replace("taste","tasting") 
		f_w.write(line)
Nach dem Login kopieren

2. Im Volltext suchen und ersetzen oder einzelne Zeile ersetzen

#文本内容
Yesterday when I was young
昨日当我年少轻狂
The taste of life was sweet
生命的滋味是甜的
As rain upon my tongue
taste
taste
taste
taste
Nach dem Login kopieren
#定义一个函数,带有4个参数
#x 表示要更新的文件名称
#y 表示要被替换的内容
#z 表示 替换后的内容
#s 默认参数为 1 表示只替换第一个匹配到的字符串
# 如果参数为 s = 'g' 则表示全文替换
def string_switch(x,y,z,s=1):
	with open(x, "r", encoding="utf-8") as f:
	    #readlines以列表的形式将文件读出
		lines = f.readlines()

	with open(x, "w", encoding="utf-8") as f_w:
	    #定义一个数字,用来记录在读取文件时在列表中的位置
		n = 0
		#默认选项,只替换第一次匹配到的行中的字符串
		if s == 1:
			for line in lines:
				if y in line:
					line = line.replace(y,z)
					f_w.write(line)
					n += 1
					break
				f_w.write(line)
				n += 1
			#将剩余的文本内容继续输出
			for i in range(n,len(lines)):
				f_w.write(lines[i])
		#全局匹配替换
		elif s == 'g':
			for line in lines:
				if y in line:
					line = line.replace(y,z)
				f_w.write(line)
Nach dem Login kopieren

Test

1) Standardparameter 1, nur die erste übereinstimmende Zeile ersetzen

string_switch("fileread.txt","taste","tasting")

#结果
Yesterday when I was young
昨日当我年少轻狂
The tasting of life was sweet
生命的滋味是甜的
As rain upon my tongue
taste
taste
taste
taste
Nach dem Login kopieren

2 ) Globales Ersetzen

string_switch("fileread.txt","taste","tasting","g")

#结果
Yesterday when I was young
昨日当我年少轻狂
The tasting of life was sweet
生命的滋味是甜的
As rain upon my tongue
tasting
tasting
tasting
tasting
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonEinführung in Python zur Implementierung von Volltext- oder Einzelzeilenersetzungen für Dateivorgänge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage