name,"jack,rose",26 with open('file.csv') as f: for line in f: ',')) print(line.rstrip().split( ... ['name', '"jack', 'rose"', '26'] 而实际上,应该是3个字段。为了正确的处理csv格式,python内置了csv模块,专门用于读写csv格式的文件。读取csv文件的代码如下 import csv with open('file.csv', newline='') as f: reader = csv.reader(f) for row in reader: print(row) ... ['name', 'jack,rose', '26'] 可以看到,处理出来的格式和预期的一致,每一行的内容是一个列表。对于第一行为表头的csv文件 Name,Student,Age name,"jack,rose",26 也可以通过DictReader方法来读取,代码如下 with open('file.csv') as f: reader = csv.DictReader(f) for row in reader: print(row) ... {'Name': 'name', 'Student': 'jack,rose', 'Age': '26'} 每一行的内容是一个dict, key为对应的表头。生成csv也有列表和字典两种写法 # 写入列表 import csv 'name', 'jack,rose', '26'] line = [ with open('out.csv','w') as csvfile: f = csv.writer(csvfile) f.writerow(line) ... 21 # 写入字典 'Name', 'Student', 'Age'] head = [ 'Name': 'name', 'Student': 'jack,rose', 'Age': '26'} line = { with open('dict.csv','w') as csvfile: f = csv.DictWriter(csvfile, fieldnames = head) f.writeheader() f.writerow(line) ... 21 对于csv文件,用csv模块来处理,可以保证结果的准确性,避免不必要的错误。 ·end· |
|