使用glob读取多个文件名并读取每个文件的内容

时间:2018-08-15 15:54:12

标签: python

嗨,我编写了一个简单的程序来从文件夹中读取多个文件并打印 每个文件的内容,但是当我运行该程序时,我注意到有无限的空白行循环正在进行。我知道每个文件的行数不超过50-70行。我在这段代码中缺少什么吗?

import glob
a=open('content.txt','w')
filesname=glob.glob('*.txt')
for line in filesname:
    with open(line) as con:
        for l in con:
             print l
             a.write(l+'\n')
a.close()

4 个答案:

答案 0 :(得分:0)

您需要打开文件进行读取,然后读取文件对象。假设您尝试将所有文​​件中的数据聚合到一个文件中,请尝试以下操作:

import glob
a=open('content.txt','w')
filesname=glob.glob('*.txt')
for line in filesname:
    with open(line,"r") as con:
        fileData=con.read()
        a.write(fileData+'\n')
a.close()

答案 1 :(得分:0)

尝试open(line).read()访问文件中的字符串

答案 2 :(得分:0)

unlimited blank line loop表示每行之后是空行吗?可以通过删除+\n并将其放置在for循环之外来解决。另外,您不需要一行一行地写入文件。您可以写入整个文件。以下代码在我的机器上似乎工作正常。

import glob
a=open('content.txt','w')
filesname=glob.glob('*.txt')
for line in filesname:
    with open(line) as con:
        text = con.read()
        print(text)
        a.write(text)
        a.write('\n')
a.close()

答案 3 :(得分:0)

我发现了自己的问题。这是我的代码:-

import glob
a=open('content.txt','w')
filesname=glob.glob('*.txt')
for line in filesname:
     with open(line) as con:
          for l in con:
                l=l.strip()
                if l!="":
                     print l
                     a.write(a+'\n')
a.close()