您好我只是想知道是否可以在python中打开多个预定义的文本文件。
我下面有一些代码(它还没有工作),第一个函数有一个类别参数,它们都是在测试用例中预定义的文本文件名。我需要尝试打开下面定义的所有文本文件,将它们输入到sql数据库中。
data_entry(categories):
with open ((categories)"*.txt"), "r") as categories:
lines = categories.readlines()
for line in lines:
data = line.split()
number = data[0]
value = data[1]
cursor.execute("""INSERT INTO popularity (PersonNumber, category, value)
VALUES(%s, %s, %s)""", (number, category, value))
if __name__ == '__main__':
data_entry(['movies', 'sports', 'actors', 'tv', 'games', \
'activities', 'musicians', 'books'])
这可能吗?如果是这样,我将如何让我的工作变得如此需要?
提前谢谢!
答案 0 :(得分:0)
使用字符串插值或格式将类别放入文件规范中,并glob.glob()
解析它。
答案 1 :(得分:0)
为什么要将这些行读入列表中,然后在事实之后将其删除?
import glob, itertools
def data_entry(categories):
globs = [glob.iglob(category + "*.txt") for category in categories]
for filename in itertools.chain(*globs):
with open(filename) as f:
for line in f:
number, value = line.split()
cursor.execute(...)
答案 2 :(得分:0)
Python不是Perl,所以你应该编写更容易阅读的代码,即使它有点长。此外,新的with语法仅适用于较新的pythons。
您应该能够将此序列调整为您的代码
import fnmatch
import os
for file in os.listdir('.'):
if fnmatch.fnmatch(file, '*.txt'):
print(file)
或者只是:
data_entry(categories):
foreach category in categories:
f = open ("%s.txt" % (category)), "r")