你能帮帮我吗?在
我需要转换:
到
在哪里
输入文件
文件1: 32676;90;5;22;…;4
文件2: 255;35;88;17;…;151
文件3: 551;86;442;78;20
输出文件
32676;255;551
35岁;86岁
90;88;442
5;17
22;78
。。。;。。。;。。。在
4;151;20
非常感谢你的帮助!在
My code :
path = 'D:\Users\mim\Desktop\SI\Test_cvs'
pathglobalcsv = 'D:\Users\mim\Desktop\SI'
#create a new file
globalfile = open(os.path.join(pathglobalcsv, 'global.csv'), 'w+')
#write filenames like column names
files = os.listdir(path)
globalfile.write(';'.join(files))
globalfile.write('\n')
#get all values
for filename in glob.glob(os.path.join(path, '*.csv')):
csvfile = open(filename, 'r')
textcsv = csv.reader(csvfile, delimiter=';')
globalfile.write(zip(*textcsv))
I have an error :
Traceback (most recent call last):
File "C:\Users\mim\eclipse-workspace\test\csv_global.py", line 86, in <module>
globalfile.write(zip(*textcsv))
TypeError: expected a string or other character buffer object
关于如何使用zip合并数据以及转置列表的一些提示。 这听起来像是如何转置csv是你真正的问题。如何转置csv的答案是将其放入列表列表(例如通过csv模块),然后将其转置并写回文件(如果需要)。在
或者,如果您安装了numpy或pandas,这两种方法都可以在最多3行代码中使用read_file/transpose_matrix/write_transposed_to_文件
所以根据你的代码,我会读所有的文件,把它们放在内存里,然后再进行转置写。我想如果你改变这一部分,它会成功的(我没有亲自测试)。在
^{pr2}$如果每个原始文件没有严格的1行,那么将得到有趣的结果。在
更新: 我举了一个小例子。在
在完成测试代码之后,我稍微调整了一下原始代码,使其列在列表中,这是唯一的事情。所以,如果你在改变之后仍然得到有趣的结果,那是因为你没有统一的输入数据,在这种情况下,你需要决定如何处理。例如,zip将静默地只输出所有原始行的最短列表的长度。要修复此问题,您需要以代码方式添加到,以便所有列表的长度与最长的行相同。在
我找到了一个解决办法。。。在
但实际上结果是:
32676个
90度
五
22个
。。。在
四
255个
35岁
88个
17
。。。在
151
如何从32676之后的第二个文件开始写入值? 谢谢!在
-*。*-
[正确答案]:
^{pr2}$相关问题 更多 >
编程相关推荐