我正在尝试建立一个系统,用户可以在其中登录网络界面并跟踪已下的订单。系统将跟踪订单,从最初的确认到生产,最后在发货前停止。 (正如我妻子所解释的:“就像 Domino's Pizza 订单跟踪器,但用于名片。”)我被困在需要从不断变化的逗号分隔 .txt 文件目录中解析数据的地步。每个下单都会自动生成自己的 .txt 文件,其中包含我将在 Web 界面上显示的各种重要信息。例如:
H39TZ3.txt:
token,tag,prodcode,qty #(These are the headers)
,H39TZ3,pchd_4stpff,,100 #(These are the corresponding values for part 1 of the order)
,H39TZ3,pchdn_8ststts,6420-PCNM8ST,100 #(These are values for part 2 of the order)
在任何给定时间目录中都会有超过 300 个不同的 .txt 文件,这些文件会根据它们的订单状态来来去去(一旦发货,文件将被存档)我已经阅读了代码解析单个文件并将值导入字典,但我发现的所有内容都是针对单个文件的。我将如何着手编写这样的东西,只针对多个文件?
import csv
d = {}
for row in csv.reader(open('H39TZ3.txt')):
d['Order %s' % row[1]] = {'tag': row[1], 'prodcode': row[2], 'qty': row[3]}
谢谢!
请您参考如下方法:
您可以使用 os.listdir() 列出包含您的 .txt 文件的目录的内容。像下面这样的东西应该适合你:
for filename in os.listdir("."):
with open(filename) as csv_file:
for row in csv.reader(csv_file):
d['Order %s' % row[1]] = {'tag': row[1], 'prodcode': row[2], 'qty': row[3]}
请注意,我在其中添加了一个 with 语句。它将确保在完成处理后关闭文件,这样您就不会浪费/用完文件描述符。如果该目录可能包含除您感兴趣的文件之外的其他文件,您可以在 with 语句之前添加适当的过滤。
