简体   繁体   English

CSV文件的脚本和打印行

[英]Pyscripter and printing line of CSV file

Here is my code: 这是我的代码:

 import csv,math
 StudentsTXT=open('students.txt')
 csv_students=csv.reader(StudentsTXT, delimiter=',')
 am =input('please search ip adress')

I also tried this code : 我也尝试了这段代码:

 import csv,math
 StudentsTXT=open('students.txt')
 csv_students=csv.reader(StudentsTXT, delimiter=',')
 print(csv_students['013'])

But this one comes up with error saying:object has no attribute' getitem ' 但这出现了一个错误,说:对象没有属性' getitem '

How can I make one of these codes to print out line of my text file already translated into csv. 如何制作这些代码之一,以打印出已转换为csv的文本文件的行。

The Text file looks something like this 文本文件看起来像这样

010,Jane,Jones,30/11/2001,32|Ban Road,H.Num:899 421 223,Female,11Ca,JJ@school.com
012,John,Johnson,23/09/2001,43|Can Street,H.Num:999 123 323,Male,11Ca,JoJo@school.com 
025,Jack,Jackson,29/02/2002,61|Cat grove,H.Num:998 434 656,Male,11Ca,JaJa@school.com

I want to be able to search for any of the names of any students and then print all information about them . 我希望能够搜索任何学生的任何姓名,然后打印有关他们的所有信息。

Question : i want it to print things like for example: 问题 :我希望它打印例如以下内容:

 002,John,Smith,01/01/2001,1 example road,000 000 000,male,11ca,js@school.com instead of: 001, john 002,jane 

Change to csv.DictReader , for instance: 更改为csv.DictReader ,例如:

Note : Assuming you have NO Headers in the CSV File! 注意 :假设CSV文件中没有标题!

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, JJ@school.com 010: Jane 32|Ban Road John, Johnson, 012, 23/09/2001, 43|Can Street, H.Num:999 123 323, Male, 11Ca, JoJo@school.com 012: John 43|Can Street Jack, Jackson, 025, 29/02/2002, 61|Cat grove, H.Num:998 434 656, Male, 11Ca, JaJa@school.com 025: Jack 61|Cat grove 

Tested with Python: 3.4.2 使用Python测试:3.4.2

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM