[英]Python How to replace a particular word in a particular line in a text file?
我是 Python 新手,如何替换 Python 文本文件中一行中的特定单词? 就像假设我有一个文本文件:
1 2 3 4 5
1 2 3 1 5
如何在 Python 的第二行中用4
替换第二个1
?
我不知道你在看什么文件,也不知道它是否真的被解析过,但你似乎只是在学习 Python,所以这里有一些例子。
首先,您可以逐行读取文件,并用空格分割每一行。
>>> lines = [l.split() for l in open('foobar.txt').readlines()]
>>> lines
[['1', '2', '3', '4', '5'], ['1', '2', '3', '1', '5']]
所以现在我们有一个行列表,列表中的每一行都是一个单词列表。 我们可以操纵它,但我们认为合适。 例如,
>>> lines[1][3] = 999
>>> lines
[['1', '2', '3', '4', '5'], ['1', '2', '3', 999, '5']]
我们可以迭代每个单词和每一行:
>>> for line_number, line in enumerate(lines):
for word_number, word in enumerate(line):
print(f'Line {line_number}, word {word_number}: {word}')
Line 0, word 0: 1
Line 0, word 1: 2
Line 0, word 2: 3
Line 0, word 3: 4
Line 0, word 4: 5
Line 1, word 0: 1
Line 1, word 1: 2
Line 1, word 2: 3
Line 1, word 3: 999
Line 1, word 4: 5
您可以使用此解决方案按位置替换
s = list("1 2 3 1 5")
s[6]="4";
print("".join(s))
假设这个数据在 input.txt 中
file = open("input.txt",'r')
file_new=open("new_input.txt",'w+')
lines = file.readlines
linenumber=0
for line in lines:
linenumber=linenumber+1
if linenumber=2:
line = str(line).replace('1','4')
file_new.writelines(line)
file.close()
file_new.close()
new_input.txt 将第 2 行的 1 替换为 4
line = [l.split() for l in open('file.txt').readlines()]
lis = []
for i in line:
if i not in lis:
lis.append(i)
elif i == 1:
lis.append(4)
f = open('file.txt', 'w+')
for i in lis:
f.write(i)
f.close()
首先读取文件内容,然后在列表理解部分拆分为列表。 当问题要求用 4 替换 1 的重复时,循环检查元素的重复。 非重复元素会直接添加到新列表lis
。 如果一个元素已经添加到 lis 中,并且它再次出现在line
,则意味着它被重复了。 现在,如果重复元素为 1,则将 4 附加到 lis,然后继续。 最后, lis
包含替换后所需的文件内容。 file.txt
在最后几行被 lis 内容覆盖。
这将替换最后一次出现的单词
with open("1.txt",'r+') as file:
a=list(file.read())
print(a)
word=input("Enter the Word want to replace")
repl=input("Enter the word you want to enter")
index_list=[]
for i in range(len(a)):
if word==a[i]:
index_list.append(i)
a[int(index_list[-1])]=repl
with open("1.txt",'w') as file:
for i in a:
file.write(i)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.