python - 按列将嵌套列表写入csv
问题描述
我有一个列表列表,如下所示:
signals_list = [ [1,4,7..... 5,7],[4,-7,1....-5,-8,4],.....]
我想在 csv 文件中逐列写入这些内部列表。我有 176 个内部列表,需要制作 176 个列。每个内部列表都有近 39400 个瞬间。
CSV 应如下所示:
我试过的:
我做了什么
# GETTING ALL THE WAV FILES FROM DIRECTORY AND CONVERTING INTO NUMPY ARRAY
path = "C:/Users/Marwat/.spyder-py3/FYP/input/set_a/"
files = os.listdir(path)
print(len(files))
signals_list = []
for filename in glob.glob(os.path.join(path, '*.wav')):
sample_rate, data = wavfile.read(filename)
signals = [np.array(data,dtype=int)]
signals_list.append(signals)
# WRITING SIGNALS TO CSV FILE
d = [signals_list]
col_name = 1
transposed_signals = zip_longest(*d, fillvalue = '')
with open('C:/Users/Marwat/.spyder-py3/FYP/input/numbers.csv', 'w', encoding="ISO-8859-1", newline='') as myfile:
wr = csv.writer(myfile)
wr.writerow('sound_'+ str(col_name))
wr.writerows(transposed_signals)
col_name +=1
myfile.close()
输出
任何帮助将不胜感激
解决方案
你几乎明白了。您遇到问题的两个地方是:
1)坚持signals_list
在外部列表中。signals_list
直接传递到zip_longest
,你应该在那里设置:
transposed_signals = list(zip_longest(*signals_list, fill_value = ''))
2) 写标题行。首先,您需要写入该行中的所有列(您只写一个)。此外,writerow()
需要一个可迭代的,这就是为什么当您传递一个字符串时,每列会得到一个字符。试试这个,并省略col_name
:
wr.writerow(('sound_' + str(i + 1) for i in range(len(transposed_signals))))
把它们放在一起(只是第二部分),你应该有:
transposed_signals = list(zip_longest(*signals_list, fillvalue=''))
with open('C:/Users/Marwat/.spyder-py3/FYP/input/numbers.csv', 'w', encoding="ISO-8859-1", newline='') as myfile:
wr = csv.writer(myfile)
wr.writerow(('sound_' + str(i + 1) for i in range(len(transposed_signals))))
wr.writerows(transposed_signals)
# Calling myfile.close() isn't necessary since `with` does that automatically upon exiting that scope.
推荐阅读
- google-kubernetes-engine - 如何在同一服务器 GKE 中运行相同部署的 2 个 Pod 时发出警报
- c++ - C++ 入门第 5 版:表示整数序列的位集
- javascript - 如何将 div 对齐?
- emeditor - 如何防止标签被内容中的空格替换
- verilog - 如何自动缩放 $display 列宽?
- javascript - 在 React 应用程序中使用 nodemailer 发布 404 错误
- excel - 返回单元格的格式化值而不是######(稳健方法)?
- c++ - 将参数传递给用户空间线程
- openmdao - 将初始猜测作为其他组件输出的函数传递给非线性求解器
- elasticsearch - 嵌套对象中日期时间范围的 Elasticsearch 查询问题