파일 작업을 위한 전체 텍스트 또는 한 줄 대체를 구현하는 Python 소개

迷茫
풀어 주다: 2017-03-25 17:17:46
원래의
1136명이 탐색했습니다.

python파일 수정 시 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
로그인 후 복사
rrree

Test

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

#定义一个函数,带有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)
로그인 후 복사

2) 전역 바꾸기

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
로그인 후 복사

위 내용은 파일 작업을 위한 전체 텍스트 또는 한 줄 대체를 구현하는 Python 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿