我有以下CSV文件:我读取csv并将每列存储到不同的变量(Name,Sub,Idx,Isd):
Name Sub Idx Isd
AAB YAH 2 7
AB VF 5
YHJ 3 4
YAH HJY 25 23
现在我想将它们存储为表格形式(作为csv中的原始数据)。现在,我只想在所有单元格都有数据(没有空单元格)的情况下存储数据。
我的最终结果:
Name Sub Idx Isd
AAB YAH 2 7
YAH HJY 25 23
我使用以下代码:
import csv
from collections import defaultdict
columns=defaultdict(list)
with open('inputCSV.csv','r',) as f:
reader=csv.DictReader(f)
for row in reader:
for(k,v) in row.items():
columns[k].append(v)
name=columns['Name']
Sub=columns['Sub']
Idx=columns['Idx']
Isd=columns['Isd']
答案 0 :(得分:0)
使用标准csv.reader()
而不是字典阅读器可能更容易:
import csv
with open('input.csv', 'rb') as f_input, open('output.csv', 'wb') as f_output:
csv_input = csv.reader(f_input)
csv_output = csv.writer(f_output)
header = next(csv_input)
csv_output.writerow(header) # copy the header to the output
for row in csv_input:
if len(row) and '' not in row:
csv_output.writerow(row)
首先将标题从输入CSV复制到输出CSV。然后对于每一行,它首先检查以确保它不是空行。然后它测试整行以查看是否有空值。如果没有,则将整行写入输出CSV文件。
给你一个output.csv
包含:
Name,Sub,Idx,Isd
AAB,YAH,2,7
YAH,HJY,25,23
注意,这假设您使用的是Python 2.x.如果正在使用Python 3.x,请替换此行:
with open('input.csv', newline='') as f_input, open('output.csv', 'w', newline='') as f_output: