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

2024-06-28 15:15: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()

Tags: 文件代码inimport程序txt文件夹for
3条回答

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

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()

^ {CD1>}你是指每行后的空行吗?这可以通过移除+\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()

请尝试打开(line).read()以访问文件中的字符串

相关问题 更多 >