将字符串追加到python中的每一行.txt文件中?

2024-04-28 22:37:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在文件的每一行加上一些文本

这是我的密码

filepath = 'hole.txt'
with open(filepath) as fp:
    line = fp.readline()
    cnt = 1
    while line:
        #..........
        #want to append text "#" in every line by reading line by line 
        text from .txt file
        line = fp.readline()
        cnt += 1

Tags: 文件text文本txt密码readlinebyas
3条回答

我假设文件足够小,可以在内存中保存两个副本:

filepath = 'hole.txt'
with open(filepath, 'r') as f:
    original_lines = f.readlines()

new_lines = [line.strip() + "#\n" for line in original_lines]

with open(filepath, 'w') as f:
    f.writelines(new_lines)

首先,我们打开文件并将所有行读入一个列表。然后,通过strip()从每一行的行结束符生成一个新列表,并在其后添加一些额外的文本和一个新的行结束符。

然后,最后一行用修改后的新行覆盖文件。

你可以阅读这些行并把它们列在一个列表中。然后用write模式打开同一个文件,并用要追加的字符串写入每一行。

filepath = "hole.txt"
with open(filepath) as fp:
    lines = fp.read().splitlines()
with open(filepath, "w") as fp:
    for line in lines:
        print(line + "#", file=fp)

假设可以将全文加载到内存中,则可以打开文件,按行拆分,并为每行附加“35;”。然后保存:-):

with open(filepath, 'r') as f:     # load file
    lines = f.read().splitlines()  # read lines

with open('new_file.txt', 'w') as f: 
    f.write('\n'.join([line + '#' for line in lines]))  # write lines with '#' appended

相关问题 更多 >