我想使用Python的csv编写器编写固定宽度,空格分隔和最低引用的CSV文件.输出的一个例子:
item1 item2
"next item1" "next item2"
anotheritem1 anotheritem2
Run Code Online (Sandbox Code Playgroud)
如果我使用
writer.writerow(("{0:15s}".format(item1),"{0:15s}".format(item2)))
...
然后,使用空格分隔符,由于项目格式的尾随空格,因此添加了引号或转义(取决于csv.QUOTE_*常量),格式化将被破坏:
"item1 " "item2 "
"next item1 " "next item2 "
"anotheritem1 " "anotheritem2 "
Run Code Online (Sandbox Code Playgroud)
当然,我可以自己格式化所有内容:
writer.writerow(("{0:15s} {1:15s}".format(item1,item2)))
但是使用csv编写器并没有多大意义.此外,当空间嵌入到项目中并且应该使用引用/转义时,我必须手动整理这些情况.换句话说,似乎我需要一个(不存在的)"QUOTE_ABSOLUTELYMINIMAL"csv常量,它将充当"QUOTE_MINIMAL",但也会忽略尾随空格.
有没有办法实现"QUOTE_ABSOLUTELYMINIMAL"行为或使用Python的CSV模块获得固定宽度,空格分隔的CSV输出的另一种方法?
我想在CSV文件中使用固定宽度功能的原因是更好的可读性.因此,它将被处理为CSV以供读取和写入,但由于列结构而更易读.读取不是问题,因为csv skipinitialspace选项负责忽略额外的空格.令我惊讶的是,写作似乎是一个问题......
编辑:我得出结论,使用当前的csv插件是不可能实现的.它不是一个内置选项,我看不出任何合理的方法如何手动实现它,因为似乎没有办法由Python的csv编写器编写额外的分隔符而不引用或转义它们.因此,我可能要编写自己的csv编写器.
我需要将文本文件转换为 CSV。请参阅下面我的代码。我的文本文件包含由不等空格分隔的 5 列。当我将其转换为 CSV 文件时,所有这 5 列都位于 Excel 文件中的单个列中。
代码:
import pandas as pd
dataframe1 = pd.read_csv("C:\HARI_BKUP\PYTHON_SELF_Learning\Funct_Noise_Corners_2p0_A.txt",)
dataframe1.to_csv('FF.csv', index = None)
Run Code Online (Sandbox Code Playgroud)
我需要一个包含每个单独列的 CSV 文件。我可以知道我哪里错了吗?
文本文件
运行代码后的输出
dataframe1 = pd.read_csv("C:\HARI_BKUP\PYTHON _SELF Learning\Funct_Noise_Corners_2p0_A.txt", sep="\t")
Run Code Online (Sandbox Code Playgroud)