Pyscripter和印刷生产线文件
问题描述:
这里是我的代码:Pyscripter和印刷生产线文件
import csv,math
StudentsTXT=open('students.txt')
csv_students=csv.reader(StudentsTXT, delimiter=',')
am =input('please search ip adress')
我也试过这个代码:
import csv,math
StudentsTXT=open('students.txt')
csv_students=csv.reader(StudentsTXT, delimiter=',')
print(csv_students['013'])
但是这一次又发表了错误说:对象有没有属性” getitem'
如何使这些代码之一打印出已经转换为csv的我的文本文件的一行。
文本文件看起来像这样
010,Jane,Jones,30/11/2001,32|Ban Road,H.Num:899 421 223,Female,11Ca,[email protected]
012,John,Johnson,23/09/2001,43|Can Street,H.Num:999 123 323,Male,11Ca,[email protected]
025,Jack,Jackson,29/02/2002,61|Cat grove,H.Num:998 434 656,Male,11Ca,[email protected]
我希望能够搜索任何任何学生的名字,然后打印有关他们的所有信息。
答
Question: i want it to print things like for example:
002,John,Smith,01/01/2001,1 example road,000 000 000,male,11ca,[email protected] instead of: 001, john 002,jane
更改为csv.DictReader
,例如:
Note: Assuming you have NO Headers in the CSV File!
with open('students.txt') as fh:
# Define Header Fieldnames
fieldnames = ['Name', 'SName', 'ID', 'Date', 'Address', 'Kontakt', 'F/M', 'Class', 'EMail']
csv_students = csv.DictReader(fh, fieldnames=fieldnames)
# Iterate csv_students
for student in csv_students:
# Create a List of Data Ordered using Fieldnames
student_list = [student[f] for f in fieldnames]
print('{}'.format(', '.join(student_list)))
# Print only Part of the Fields
print('{s[ID]}: {s[Name]} {s[Address]}'.format(s=student))
Output:
Jane, Jones, 010, 30/11/2001, 32|Ban Road, H.Num:899 421 223, Female, 11Ca, [email protected] 010: Jane 32|Ban Road John, Johnson, 012, 23/09/2001, 43|Can Street, H.Num:999 123 323, Male, 11Ca, [email protected] 012: John 43|Can Street Jack, Jackson, 025, 29/02/2002, 61|Cat grove, H.Num:998 434 656, Male, 11Ca, [email protected] 025: Jack 61|Cat grove
测试使用Python 3.4.2
究竟你想干什么? – sera
我希望能够搜索任何学生的任何名字,然后打印出关于它们的所有信息,我忘记了如何去做 –
'csv.reader'是对文件行的迭代器,所以'csv_students ['013']'只是无稽之谈.'在csv_students中的行:print row [:2]'将显示每行的2个第一个字段。 –