如何在python中从csv文件中拆分列

2024-09-30 02:27:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难完成一个编码挑战,希望有一些帮助,如果可能的话。在

我有一个CSV文件,里面有1000个名字、姓氏、电子邮件、性别和出生日期(出生日期),我正试图将每一列分开。 我的第一个挑战是打印文件的前10行,我这样做是使用

counter = 0 
print("FORENAME SURNAME EMAIL GENDER DATEOFBIRTH","\n")
csvfile = open ("1000people.csv").read().splitlines()
for line in csvfile:
    print(line+"\n")
    counter = counter + 1
    if counter >= 10:
        break

这将按预期工作并打印前10行。第二个挑战是要做同样的事情,但要按字母顺序,而且只有名字。我只能使用以下命令按字母顺序打印前10行:

^{pr2}$

上述代码的结果:

>>> 
FORENAME SURNAME EMAIL GENDER DATEOFBIRTH 

Abba,Ebbings,aebbings7z@diigo.com,Male,23/06/1993

Abby,Powney,apowneynj@walmart.com,Female,01/03/1998

Abbye,Cardus,acardusji@ft.com,Female,30/10/1960

Abeu,Chaize,achaizehi@apple.com,Male,25/06/1994

Abrahan,Shuard,ashuardb5@zdnet.com,Male,09/12/1995

Adah,Lambkin,alambkinga@skyrock.com,Female,21/08/1992

Addison,Shiers,ashiersmg@freewebs.com,Male,13/07/1981

Adelaida,Sheed,asheedqh@elpais.com,Female,06/08/1976

Adelbert,Jurkowski,ajurkowski66@amazonaws.com,Male,27/10/1957

Adelice,Van Arsdall,avanarsdallqp@pagesperso-orange.fr,Female,30/06/1979

那么,有没有一种方法可以将这些列分开,以便在选择时只打印一个特定的列?
谢谢你的阅读和回复。在


Tags: csvfilecomemail字母linecountersurname名字
1条回答
网友
1楼 · 发布于 2024-09-30 02:27:38

csv模块有助于拆分列。实现你想要的东西的Python式方法是:

import csv
with open("1000people.csv") as f:
    cr = csv.reader(f)  # default sep is comma, no need to change it
    first_10_rows = [next(cr,[]) for _ in range(10)]

next(cr,[])指令在列表理解中使用一行,如果文件小于10行,则将得到一个空行而不是异常(这是第二个参数的用途)

现在,first_10_rows是一个包含值的列表列表。得益于csv模块,引号和逗号被正确地去掉了。在

相关问题 更多 >

    热门问题