是否有转置 .csv 文件的实用程序?

dre*_*cko 3 libreoffice software-recommendation

我有一些 csv 文件,其中包含太多列供 LibreOffice Calc 打开,但只有几行。如果我可以转置 csv 文件,那应该没问题,因为 Calc 可以处理比列多得多的行。

xub*_*tix 5

一个简单的 python 程序就可以完成这项工作(因为这还没有经过真正的测试:提前备份你的 csv 文件!):

import csv
import sys
infile = sys.argv[1]
outfile = sys.argv[2]

with open(infile) as f:
    reader = csv.reader(f)
    cols = []
    for row in reader:
        cols.append(row)

with open(outfile, 'wb') as f:
    writer = csv.writer(f)
    for i in range(len(max(cols, key=len))):
        writer.writerow([(c[i] if i<len(c) else '') for c in cols])
Run Code Online (Sandbox Code Playgroud)

您可以将其保存到文件“my_csv_transposer.py”中,然后从命令行调用它,如下所示:

python my_csv_transposer.py <theinfilename> <theoutfilename>
Run Code Online (Sandbox Code Playgroud)