我是Python的新手。我搜索了数据库,但没有找到我问题的确切答案。这是我的基本问题:
我有一个以下形式的csv文件:
Header1, Header2, Header3
1, a, DF FD
2, b, DD FD
我需要以下面的形式写出csv:
Header1, Header2, Header3
1, a, DF
1, a, FD
2, b, DD
2, b, FD
现在我在这里使用我的代码:
import csv
with open('InputFile.csv', newline='') as f:
reader = csv.reader(f, delimiter = ',')
for row in reader:
if row[0] != '':
print(row)
我正在使用印刷品来看看我拥有的东西。我现在的问题是如何在第三列中拆分空格分隔值并获得我想要实现的输出?我的实际文件更复杂,但我认为对此的回答将使我朝着正确的方向前进。
答案 0 :(得分:1)
我认为以下是你的意思:
import csv
import sys
# Index (starts at 0) of the column that needs to be split up
splitColIndex = 2
with open('InputFile.csv') as f:
reader = csv.reader(f, delimiter = ',')
for row in reader:
# Get the element that needs splitting
splitElem = row[splitColIndex]
for subElem in splitElem.split():
# Iterate over the row elements
# (actually the indices)
for idx in range(len(row)):
# If the column doesn't need splitting, we
# can just copy it, otherwise we need to use
# one of the split up values
if idx != splitColIndex:
elem = row[idx]
else:
elem = subElem
if idx > 0:
sys.stdout.write(",")
sys.stdout.write(elem)
sys.stdout.write("\n")
在这里,我使用split
函数进行转换,例如"DF FD"
列入[ "DF", "FD" ]
列表。我还使用sys.stdout.write
代替print
来稍微控制输出的格式。