我在完成编码挑战时遇到困难,如果可能的话,我希望得到一些帮助。
我有一个包含1000个姓氏,姓氏,电子邮件,性别和女性(出生日期)的CSV文件,我正试图将每一栏分开。 我的第一个挑战是打印文件的前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行:
counter = 0
print("FORENAME SURNAME EMAIL GENDER DATEOFBIRTH","\n")
csvfile = open ("1000people.csv").read().splitlines()
for line in sorted(csvfile):
print(line+"\n")
counter = counter + 1
if counter >= 10:
break
上述代码的结果:
>>>
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
那么有没有办法将列分开,以便在选择时只打印一个特定的列? 感谢您的阅读和回复,如果您这样做。
答案 0 :(得分:1)
csv模块有助于拆分列。实现你想要的pythonic方法是:
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模块,逗号被正确剥离。