从一个位置打开多个文本文件

时间:2018-10-10 20:47:05

标签: python

我正在尝试从某个位置打开583个文本文件。我需要找到这些文件之间的相似之处,以便可以将它们加入数据库中。我的想法是Python适合于此,但是我什至无法打开文件。

    from os import listdir, chdir, getcwd
    path = (r'...\Text')
    chdir(path)
    files = [f for f in listdir(path)]
    active = []

    for bestand in files:
        with open(bestand) as x:
            active.append(x)

    print(active)

我得到的结果是一些带有模式和编码的文件名。这是一个示例:

     <_io.TextIOWrapper name='To-do.txt' mode='r' encoding='cp1252'>

想知道我是否有可能实现目标。我赞赏朝着正确的方向前进,而不是编写完整的代码。

谢谢!

编辑:我面临的新问题。我希望所有列名都作为字典中的键,而数据为值。当前代码给我错误:AttributeError:'list'对象没有属性'items'

from os import listdir, chdir, getcwd
from os.path import isfile, join
path = (r'...\Text')
chdir(path)
files = [f for f in listdir(path)]
active = []
values = {}

for bestand in files:
    if bestand.lower().endswith(('.txt')):
        with open(bestand) as x:
            active.append(x.read())

for line in active:
    if ',' not in line:
        continue

    #print("LINE: ", line)
    for key, value in line.strip().split(',', 1).items():
        values[key] = value
print(values)

1 个答案:

答案 0 :(得分:1)

打开文件后,您需要阅读。 open方法打开文件并返回TextIOWrapper对象,但不读取文件内容。

我正在编辑您的代码,这些代码提供了这些文件中的文本列表:

from os import listdir, chdir, getcwd
path = (r'...\Text')
chdir(path)
files = [f for f in listdir(path)]
active = []

for bestand in files:
    with open(bestand) as x:
        active.append(x.read())

print(active)

append调用中的read方法可以完成工作。干杯!