Python-在TXT中写入每行的开头和结尾
我目前正在寻找一种在Python中写入TXT文件每行开头和结尾的方法。比如说, 当前TXT文档:Python-在TXT中写入每行的开头和结尾,python,text,text-files,readlines,Python,Text,Text Files,Readlines,我目前正在寻找一种在Python中写入TXT文件每行开头和结尾的方法。比如说, 当前TXT文档: Jimmy Was Here 将第一个值写入每行的开头 111Jimmy 111Was 111Here 111Jimmy222 111Was222 111Here222 将第二个值写入每行末尾 111Jimmy 111Was 111Here 111Jimmy222 111Was222 111Here222 在谷歌上似乎找不到任何描述如何正确完成这项工作的内容。我已经找到了写特定行的方法,但
Jimmy
Was
Here
将第一个值写入每行的开头
111Jimmy
111Was
111Here
111Jimmy222
111Was222
111Here222
将第二个值写入每行末尾
111Jimmy
111Was
111Here
111Jimmy222
111Was222
111Here222
在谷歌上似乎找不到任何描述如何正确完成这项工作的内容。我已经找到了写特定行的方法,但不是所有的都是这样。感谢您的帮助!谢谢 假设您已使用列表中的readlines()读取文件,则可以执行以下操作
value1 = "" # appended at first
value2 = "" # appended at last
data = file.readlines()
data = [ ( value1 + str.rstrip('\n') + value2 + "\n" ) for str in data ]
然后将数据写回文件….您可以使用with
inplace=1对文件进行更改,而无需打开多个文件:
prefix = '111'
suffix = '222'
with open('source.txt', 'r') as src:
with open('dest.txt', 'w') as dest:
for line in src:
dest.write('%s%s%s\n' % (prefix, line.rstrip('\n'), suffix))
import fileinput
for line in fileinput.input('test.txt', inplace=1):
print '{0}{1}{2}'.format('111', line.rstrip('\n'), '222')
replace
接受两个参数。在Python 2.5或更低版本上,将打印行替换为print“%s%s%”('111',line[:-1],'222')
-1:如果最后一行没有终止,请不要使用line[:-1]
。使用line.rstrip('\n')
这必须将整个文件保存在内存中,而不是Steven Rumbalski的答案。如果后缀
不是固定长度的字符串怎么办?@BehnamHeydari:那应该没什么区别。因此%s
的数量与后缀的长度无关?@BehnamHeydari:正确。三个%s
表示字符串中插入了三个项目。这里的三个项目是前缀、行本身和后缀。