Python—在文件的特定行中的单词后添加字符串
我需要在文本文件的特定行中的单词后添加字符串。原始文件是:Python—在文件的特定行中的单词后添加字符串,python,Python,我需要在文本文件的特定行中的单词后添加字符串。原始文件是: line 1: value1 line 2: value2 line 3: value3 line 4: value4 line 5: value5 例如,我想在第3行“line”之后添加“NAME”,这样文件将变成: line 1: value1 line 2: value2 line NAME 3: value3 line 4: value4 line 5: value5 你会怎么做? < P>我会考虑这个: with open
line 1: value1
line 2: value2
line 3: value3
line 4: value4
line 5: value5
例如,我想在第3行“line”之后添加“NAME”,这样文件将变成:
line 1: value1
line 2: value2
line NAME 3: value3
line 4: value4
line 5: value5
<>你会怎么做? < P>我会考虑这个:
with open(file, 'r') as f:
lines = []
for line in f:
split_lines = line.split(':')
if split_lines[0].endswith('3') is True:
lines.append(split_lines[0][:-1] + NAME + split_lines[1:])
else:
lines.append(line)
line_number = 3#I understood you know this. right ?
string_to_add = "NAME"#I understood you know this. right ?
string_to_find = "line"#I understood you know this. right ?
filename = "toto"
with open(filename,"r") as f:
s = f.readlines()
s[line_number] = s[line_number].replace(string_to_find,string_to_find+string_to_add)
with open(filename,"w") as f:
for line in s:
f.write(line)
的确,它看起来效率很低(对于大文件来说可能不现实)。我很想看到更好的方法。 < P>我会考虑这一点:
line_number = 3#I understood you know this. right ?
string_to_add = "NAME"#I understood you know this. right ?
string_to_find = "line"#I understood you know this. right ?
filename = "toto"
with open(filename,"r") as f:
s = f.readlines()
s[line_number] = s[line_number].replace(string_to_find,string_to_find+string_to_add)
with open(filename,"w") as f:
for line in s:
f.write(line)
的确,它看起来效率很低(对于大文件来说可能不现实)。我很想找到更好的方法。这会查找以“第3行:”开头的行,只编辑这一行,保留其余行,并将文本写入新文件
with open('f1.txt', 'r') as f:
lines = []
for line in f:
if line.startswith("line 3:"):
split_line = line.split()
split_line.insert(split_line.index("3:"), "NAME")
lines.append(' '.join(split_line) + '\n')
else:
lines.append(line)
with open('f2.txt', 'w') as f:
for line in lines:
f.write(line)
当您运行下面的代码时
with open('f2.txt', 'r') as f:
for line in f:
print(line, end='')
它打印:
line 1: value1
line 2: value2
line NAME 3: value3
line 4: value4
line 5: value5
这将查找以“line 3:”开头的行,并仅编辑这一行,保留其余行,然后将文本写入新文件
with open('f1.txt', 'r') as f:
lines = []
for line in f:
if line.startswith("line 3:"):
split_line = line.split()
split_line.insert(split_line.index("3:"), "NAME")
lines.append(' '.join(split_line) + '\n')
else:
lines.append(line)
with open('f2.txt', 'w') as f:
for line in lines:
f.write(line)
当您运行下面的代码时
with open('f2.txt', 'r') as f:
for line in f:
print(line, end='')
它打印:
line 1: value1
line 2: value2
line NAME 3: value3
line 4: value4
line 5: value5
你在哪里重写文件?@Stéphane只需在写入模式下打开同一个文件,并在列表行中写入行。你在哪里重写文件?@Stéphane只需在写入模式下打开同一个文件,并在列表行中写入行。你能发布你的代码吗?你能发布你的代码吗?