我正在尝试从某个位置打开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)
答案 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方法可以完成工作。干杯!