我需要将两个不同的列表写入两个单独的.csv。
问题是,我的代码(如下)将第二个列表追加到第一个列表(即使两者的列数都不相同)并写入.csv。完全在第二个.csv中重复此操作。
这是在Windows上使用Anaconda的Spyder 3 IDE在Python 3.7上进行的模拟。
...
specEff = switchData = []
...
switchData.append([k, totalAttenData[k][0], rxSite, sameSiteCount, rxFade, totalAttenData[k][1], totalAttenData[k][2]])
...
#%%# Save results
specEff.append([predictAheadMins, aveSpecEff])
if platform == 'win32':
SwitchDataFile = ".\Results\SwDataFilePred2#"+"{:,}".format(predictAheadMins)+"mins.csv"
specEffDataFile = ".\Results\SpEffDataFilePred2.csv"
elif platform == 'linux' or platform == 'linux2':
SwitchDataFile = "./Results/SwDataFilePred2#"+"{:,}".format(predictAheadMins)+"mins.csv"
specEffDataFile = "./Results/SpEffDataFilePred2.csv"
try:
with open(SwitchDataFile, 'w', newline='') as outfile:
csv.writer(outfile).writerows(switchData)
except:
with open(SwitchDataFile, 'a', newline='') as outfile:
csv.writer(outfile).writerow(switchData)
try:
with open(specEffDataFile, 'w', newline='') as outfile2:
csv.writer(outfile2).writerows(specEffData)
except:
with open(specEffDataFile, 'a', newline='') as outfile2:
csv.writer(outfile2).writerows(specEffData)
我希望有两个不同的csv文件存储不同的列表。
答案 0 :(得分:3)
如果在一行中初始化一个列表,它将创建一个带有两个变量名的列表:
a = b = []
a.append('a')
print(a)
print(b)
结果:
['a']
['a']
相反,您需要对其进行两次初始化以具有两个列表:
a, b = [], []
a.append('a')
print(a)
print(b)
结果:
['a']
[]