gpt4 book ai didi

python - 在不丢失列对齐的情况下将 csv 转换为 txt

转载 作者:太空宇宙 更新时间:2023-11-04 00:37:01 26 4
gpt4 key购买 nike

我想在不丢失列对齐的情况下使用 python 将多个 csv 文件转换为 txt。

csv 文件的示例,以逗号分隔,没有空格或制表符,如下所示:

"Products" "Technologies" Region1 Region2 Region3
Prod1 Tech1 16 0 12
Prod2 Tech2 0 12 22
Prod3 Tech3 22 0 36

但是使用我的脚本我最终得到以下结果:

"Products" "Technologies" Region1 Region2 Region3
Prod1 Tech1 16 0 12
Prod2 Tech2 0 12 22
Prod3 Tech3 22 0 36

分隔符的选择是任意的。考虑到带有 csv 文件的表格的尺寸会有所不同并且列标题的长度会有所不同,是否有一种相对简单的方法来实现我想要的?

我使用以下 python 代码:

import os
import fileinput
dire = "directory"

# function for converting csv files to txt
def csv_to_txt(names, txtfilename):

# remove existing txt file
if os.path.exists(dire + txtfilename + ".txt"):
os.remove(dire + txtfilename + ".txt")

# open the include file
includefile = open(dire + txtfilename + ".txt", "a")

# handle the csv files and convert to txt
with open(names, "a+") as input_file:
lines = [line.split(",", 2) for line in input_file.readlines()]
print lines
text_list = [" ".join(line) for line in lines]

for line in text_list:
includefile.write(line)
includefile.close()


csv_to_txt(dire + "01.csv", "nameofoutputfile")

for line in fileinput.FileInput(dire + "nameofoutputfile" + ".txt",inplace=1):
line = line.replace('"','')
line = line.replace(',',' ')

最佳答案

CSV 文件不包含格式或对齐信息,它只是用逗号分隔的数据。通常,漂亮地渲染 csv 是表处理器的工作。

要将文件读入列表或字典,请使用 csv 标准模块。为了在 pretty-print 中获得最佳效果,请使用 PrettyTable 或 PTable fork https://pypi.python.org/pypi/PTable/0.9.0 .其他工具是 https://pypi.python.org/pypi/tabulate或文本表 https://oneau.wordpress.com/2010/05/30/simple-formatted-tables-in-python-with-texttable , https://pypi.python.org/pypi/beautifultable/ .

使用 PTable

   from prettytable import from_csv
fp = open("myfile.csv", "r")
mytable = from_csv(fp)
fp.close()
mytable.border = False
print mytable.get_string()

对于几个简单的表,一个简单的 snippet也可以。

就我个人而言,当我不得不打印出一张表格而不用额外麻烦的包时,我会使用一些特殊的字符串格式,但包通常更容易被证明,支持很多选项,所以如果你要处理很多表,它可能值得付出努力。


Prettytable 似乎是最受欢迎的(大名鼎鼎)。制表claims比大多数漂亮的桌面打印机更好的性能,保存 asciitable(现在是 astropy.io.ascii ,所以除非你是火箭科学家,否则可能有点矫枉过正)

关于python - 在不丢失列对齐的情况下将 csv 转换为 txt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43588288/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com