【发布时间】:2013-11-21 00:02:04
【问题描述】:
所以在 Python 3.3.2 中开发一个程序。对这一切都是新的,但我一直在经历它。我制作了一个需要 5 个输入的应用程序。其中 3 个输入是组合框,两个是条目小部件。然后我创建了一个按钮事件,它将这 5 个输入保存到一个文本文件和一个 csv 文件中。打开每个文件,一切看起来都很正常。例如,保存的信息如下所示:
Brad M.,Mike K.,Danny,Iconnoshper,Strong Wolf Lodge
然后我跟随了一个 csv 演示并复制了这个......
import csv
ifile = open('myTestfile.csv', "r")
reader = csv.reader(ifile)
rownum = 0
for row in reader:
# Save header row.
if rownum == 0:
header = row
else:
colnum = 0
for col in row:
print('%-15s: %s' % (header[colnum], col))
colnum += 1
rownum += 1
ifile.close()
最终打印精美:
rTech: Brad M.
pTech: Mike K.
cTech: Danny
proNam: ohhh
jobNam: Yeah
rTech: Damien
pTech: Aaron
以此类推。我想弄清楚的是我是否通过
命名了我的标题if rownum == 0:
header = row
有没有办法拉出特定的行/列组合并打印那里的内容??
我发现程序运行后我可以做
print(col)
或
print(col[0:10]
我可以打印最后打印的列,或最后打印的列中的字母。但是我不能再回到最后打印的那一列了。
我的最终目标是能够分配变量,这样我就可以反过来让另一个程序中的标签从 csv 文件中获取它的信息。
rTech for job is???
look in Jobs csv at row 1, column 1, and return value for rTech
我需要创建一个加载信息的字典然后调用字典吗?感谢您的任何指导
感谢您的指导。所以一直在尝试一些不同的东西,其中我真正喜欢的是以下......
import csv
labels = ['rTech', 'pTech', 'cTech', 'productionName', 'jobName']
fn = 'my file.csv'
cameraTech = 'Danny'
f = open(fn, 'r')
reader = csv.DictReader(f, labels)
jobInformation = [(item["productionName"],
item["jobName"],
item["pTech"],
item["rTech"]) for item in reader if \
item['cTech'] == cameraTech]
f.close()
print ("Camera Tech: %s\n" % (cameraTech))
print ("\n".join(["Production Name: %s \nJob Name: %s \nPrep Tech: %s \nRental Agent: %s\n" % (item) for item in jobInformation]))
这表明我可以通过 cameraTech 创建一个变量,只要它与加载到保存 csv 文件的阅读器中的内容相匹配,并且如果 cTech 列与 cameraTech 匹配,那么它将填写正确的信息。 95% 在那里 WOOOOOO..
所以现在我很好奇的是调用每个项目。该计划在一个窗口中,我有一个列表框,其中填充了带有“productionName”和“jobName”的 .txt 文件中的项目。当我单击列表框中的其中一项时,会打开一个新窗口,然后将 .csv 文件中的匹配信息填充到相应的标签中。
想法???再次感谢:)
【问题讨论】:
标签: python csv dictionary