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



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

文件示例:

#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),所以我知道重复添加空格字符串的循环的时间。我也知道如何打开文件进行读写。

谢谢大家。

您可以将文件输入与 inplace=True 一起使用来更新原始文件:

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

或者使用临时文件。NamedTemporaryFile with shutil.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")

您不需要知道文件的长度。在 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)

您可以通过打开文件进行读取来执行此操作(在同一文件上) "r" 标志,

然后,对于文件中的每一行,在新行字符("")之前添加一个空格,

最后,使用"w"标志打开文件进行写入,并使用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 文件,因此它在""之前不包含"\r"字符,如果不是这种情况,第 2 行应该是:

    lines = [line.replace("rn"," rn") for line in source.readlines()]

相关内容

  • 没有找到相关文章

最新更新