2013-11-28 90 views

回答

8
s = '123' 
with open('out', 'w') as out_file: 
    with open('in', 'r') as in_file: 
     for line in in_file: 
      out_file.write(line.rstrip('\n') + s + '\n') 
+0

相應地改變,謝謝 –

+0

我試過這個,而不是添加字符串,它把它放在另一行。請注意,在線是一個IP。所以它應該是127.0.0.1字符串而不是127.0.0.1(return/enter)字符串。 – Pcntl

+0

right,undated again –

2
def add_str_to_lines(f_name, str_to_add): 
    with open(f_name, "r") as f: 
     lines = f.readlines() 
     for index, line in enumerate(lines): 
      lines[index] = line.strip() + str_to_add + "\n" 

    with open(f_name, "w") as f: 
     for line in lines: 
      f.write(line) 

if __name__ == "__main__": 
    str_to_add = " foo" 
    f_name = "test" 
    add_str_to_lines(f_name=f_name, str_to_add=str_to_add) 

    with open(f_name, "r") as f: 
     print(f.read()) 
8

記住,使用+運營商組成的字符串是緩慢的。改爲加入列表。

output = "" 
file_name = "testlorem" 
string_to_add = "added" 

with open(file_name, 'r') as f: 
    file_lines = [''.join([x.strip(), string_to_add, '\n']) for x in f.readlines()] 

with open(file_name, 'w') as f: 
    f.writelines(file_lines) 
+0

如果'''['.join([x.strip(),string_to_add,'\ n'])for f]'''會更好嗎? – lerner

相關問題