Python - 如何在text / conf文件的每一行末尾添加空格字符串('')

时间:2015-06-11 09:33:17

标签: python file

我有一个配置文件,我想在文件的每一行末尾添加一个空格('')

文件示例:

#xxx configuration
IPaddr = 1.1.1.1<add a space here>
host = a.b.c.d<add a space here>
usrname = aaa<add a space here>
dbSID = xxx<add a space here>

我已经拥有文件中的行数(使用len)所以我知道 多少时间重复添加空格字符串的循环。 我也知道如何打开文件进行阅读和写作。

谢谢大家。

3 个答案:

答案 0 :(得分:2)

您可以fileinputinplace=True一起使用来更新原始文件:

import fileinput
import sys
for line in fileinput.input("in.txt",inplace=True):
    sys.stdout.write("{} \n".format(line.rstrip()))

或者使用tempfile.NamedTemporaryFileshutil.move

from tempfile import NamedTemporaryFile
from shutil import move

with open("in.txt") as f, NamedTemporaryFile("w",dir=".", delete=False) as temp:   
    for line in f:
       temp.write("{} \n".format(line.rstrip()))
move(temp.name,"in.txt")

答案 1 :(得分:1)

您无需知道文件的长度。在python文件中是产生线的迭代器。不需要c风格的for循环。

所以这样的事情应该适合你(python3或from __future__ import print_function):

with open('file.in') as infile, open('file.out', 'w') as outfile:
    for line in infile:
        print(line.strip() + ' ', file=outfile)

答案 2 :(得分:0)

你可以打开文件阅读&#34; r&#34;在同一个文件上。标志

然后,对于文件中的每一行,在新行字符前添加一个空格(&#34; \ n&#34;),

最后,打开文件以便用&#34; w&#39;标记,并使用writelines()函数写入更新的内容。

with open('config.txt', 'r') as source:
    lines = [line.replace("\n"," \n") for line in source.readlines()]
with open("config.txt", "w") as target:
    target.writelines(lines)

请注意,我假设该文件是UNIX文件,因此它不包含&#34; \ r&#34; &#34; \ n&#34;之前的字符,如果不是这样,则第2行应为:

    lines = [line.replace("\r\n"," \r\n") for line in source.readlines()]