将多个文本文件中的行写入一个文本文件

我对Python和一般的编程都是新手。看看下面的代码,为什么我的主文件要在每个文本文件中写两次行?

选择 | 换行 | 行号
  1. import os
  2. import glob
  3. FileName = "master.txt"
  4. fout = open(FileName, "w")
  5. for filename in glob.glob("*txt"):
  6.     fin = open(filename, "r")
  7.     lines = fin.readlines()
  8.     fin.close()
  9.     for lidx in lines:
  10.         fout.write( "%s" % lidx )
  11. fout.close()

我得到的组合文件如下所示:
文件1中的文本
文件2中的文本
文件3中的文本
文件1中的文本
文件2中的文本
文件3中的文本
如有任何帮助,我们不胜感激。

# 回答1


当我测试它时,这段代码完全按照您希望的那样工作。
碰巧,您在同一目录中有指向这些文件的链接吗?我知道这听起来很奇怪,但当我创建指向测试这段代码的任何文件的链接时,链接文件的内容在输出中加倍。(Python文档的GLOB部分解释了这一点)。
我希望这会有一些用处,因为除此之外,您的代码非常适合我。
任何比这更多的东西,我绝对是毫无用处的。我是一个初学者,我认为改进的最好方法是不断地查看代码,并试图在进行过程中弄清楚事情的真相。
# 回答2


我也看不出您的代码有什么问题。我有一个改进代码的建议。而不是

选择 | 换行 | 行号
  1.     for lidx in lines:
  2.         fout.write( "%s" % lidx )

我更喜欢

选择 | 换行 | 行号
  1.     fout.write("".join(lines))

标签: python

添加新评论