>  기사  >  백엔드 개발  >  Python에서 파일 작업을 위한 전체 텍스트 또는 한 줄 대체 방법

Python에서 파일 작업을 위한 전체 텍스트 또는 한 줄 대체 방법

高洛峰
高洛峰원래의
2017-03-08 10:10:282272검색

파이썬이 파일을 수정할 때 w 모드를 사용하면 원본 파일을 지우거나 덮어씁니다. 먼저 읽기(r)로 열고 메모리에 쓴 다음 쓰기(w)로 열 수 있습니다.

  1. 텍스트의 맛을 맛으로 대체

Yesterday when I was young
昨日当我年少轻狂
The taste of life was sweet
生命的滋味是甜的
As rain upon my tongue

#将文件读取到内存中
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)

2. 전체 내용에서 찾아 바꾸기 또는 한 줄로 바꾸기

#文本内容
Yesterday when I was young
昨日当我年少轻狂
The taste of life was sweet
生命的滋味是甜的
As rain upon my tongue
taste
taste
taste
taste

#定义一个函数,带有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)

Test

1) 기본 매개변수 1, 일치하는 첫 번째 줄만 교체

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

2) 전역 대체

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

파이썬에서 파일 작업을 위한 전체 텍스트 또는 한 줄 대체 방법에 대한 자세한 관련 기사를 보려면, PHP 중국어 웹사이트를 주목해주세요!

 

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.