所以在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
有没有办法拉出特定的row / col组合并打印那里的内容?
我已经发现我可以在程序运行后执行
print(col)
或
print(col[0:10]
我可以打印最后打印的col或最后打印的col的字母。但是我不能比最后一次打印的那个更远。
我的最终目标是能够分配变量,以便我可以在另一个程序中获得一个标签,从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文件中的匹配信息填充到相应的标签中。
思考???再次感谢:)
答案 0 :(得分:0)
我认为将CSV文件读入字典可能是解决问题的有效方法。
Python CSV包内置支持使用DictReader将CSV文件读入Python字典,请查看此处的文档:http://docs.python.org/2/library/csv.html#csv.DictReader
这是一个使用DictReader的(未经测试的)示例,它将CSV文件读入Python字典并打印第一行的内容:
import csv
csv_data = csv.DictReader(open("myTestfile.csv"))
print(csv_data[0])
答案 1 :(得分:0)
好的,所以在看到以下内容(https://gist.github.com/zstumgoren/911615)
后,我能够把它放在一起这告诉我如何给每个标题一个我可以调用的变量。然后,我可以创建一个函数,允许调用和比较某些变量,如果匹配,我将能够看到所需的某些数据。因此,我向自己展示可以完成的示例如下:
import csv
source_file = open('jobList.csv', 'r')
for line in csv.DictReader(source_file, delimiter=','):
pTech= line['pTech']
cTech= line['cTech']
rAgent= line['rTech']
prodName= line['productionName']
jobName= line['jobName']
if prodName == 'another':
print(pTech, cTech, rAgent, jobName)
但是我只注意到了一些东西,而我的.csv文件只有一行,这很棒!!!!但是,创建我正确的.csv文件,我只能打印最后一行读取的信息。 Grrrrr ......虽然越来越近......我仍然在寻找,但如果有人理解我的问题,就会喜欢一些光。