Python:如何继续在文件中的同一行写入?

时间:2015-06-05 09:25:21

标签: python file

这是一个片段:

f = open("a.txt","r")
paragraph = f.readlines()
f1 = open("o.txt","w")
for line in paragraph:
    f1.write(line)

在这里,我如何设法在o.txt中的同一行连续写入?
例如,a.txt

Hi,   
how  
are   
you?

然后o.txt应为:

Hi, how are you?

提前致谢。

5 个答案:

答案 0 :(得分:1)

您需要剥离线然后连接并写入文件:

with open("a.txt","r") as in_f,open("o.txt","w") as out_f: 
    out_f.write(' '.join(in_f.read().replace('\n','')))

同样作为使用with statement处理文件的更加pythonic方式。

或更好:

with open("a.txt","r") as in_f,open("o.txt","w") as out_f: 
    out_f.write(' '.join(map(str.strip(),in_f))

或使用列表理解:

with open("a.txt","r") as in_f,open("o.txt","w") as out_f: 
    out_f.write(' '.join([line.strip() for line in in_f])

答案 1 :(得分:1)

使用rstrip

删除换行符号
f = open("a.txt","r")
paragraph = " ".join(map(lambda s: s.rstrip('\n'), f.readlines()))
f1 = open("b.txt","w")
f1.write(paragraph)

答案 2 :(得分:1)

private
  def set_teacher
    @teachers = Teacher.find(params[:id])
  end) 

答案 3 :(得分:0)

这是因为Python读取整个行,包括python中表示为\n的换行符。示例中的字符串将生成如下数组:

['Hi,\n', 'how\n', 'are\n', 'you?']

要解决此问题,您需要从每一行中删除尾随\n,但要注意最后一行可能不包含\n,因此您无法删除每行的最后一个字符。 python中内置了预先制作的方法,可以帮助您从字符串的开头和结尾删除空格字符(如换行符\n和空格" ")。

官方文档可能有点令人生畏,但查找和使用文档中的信息可能是计算领域最重要的技能之一。查看官方文档,看看您是否在字符串类中找到任何有用的方法。 https://docs.python.org/3/library/stdtypes.html#str.strip

答案 4 :(得分:0)

我找到了解决方案。在这里。基本上使用replace()

f = open("a.txt","r")
paragraph = f.readlines()
f1 = open("o.txt","w")
for line in paragraph:
    line = line.replace("\n"," ")
    f1.write(line)

欢迎其他方法! :)