Python-在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 在谷歌上似乎找不到任何描述如何正确完成这项工作的内容。我已经找到了写特定行的方法,但

我目前正在寻找一种在Python中写入TXT文件每行开头和结尾的方法。比如说,

当前TXT文档:

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
表示字符串中插入了三个项目。这里的三个项目是前缀、行本身和后缀。