更改同一列的内容并写入同一文件

时间:2013-09-30 10:03:20

标签: python

我想将文件中每一行的第2列(单个字符)的内容更改为字母“k”,这是我的代码:

f = open('test.txt')
f_str = f.readlines()
f.close()

for line in f_str:
    s = list(line)
    s[1] = "k"
    line = ''.join(s)
    print line   

f = open('test.txt', 'w')
f.writelines(f_str)      
f.close()

我设法更改for循环中的内容(打印结果显示),但我没有将更改的结果写入文件。请,任何建议将不胜感激。

1 个答案:

答案 0 :(得分:2)

您不会更新f_str,因此您最终会写出您读入的完全相同的行。而不是打印已修改的行,而是将它们添加到新列表中。

new_lines = []
with open("test.txt") as f:
    for line in f:
        new_line = list(line)
        new_line[1] = "k"
        new_lines.append(''.join(new_line))

with open("test.txt", "w") as f:
    f.writelines(new_lines)