除了逗号(,
),在.csv
文件中使用什么是最好的替代单个字符或字符串,这些文件通常被处理为列和行(如表格)?我的值确实包含了一个不可预测的逗号数目和模式。
需要与python(最好是)其他应用程序兼容。通常我的值包含逗号.
,所以我一直在使用","
,或者更确切地说,"value"
模式。我现在使用:
"column1","column2","column3"
但是,在这些情况下让"
正确工作往往是一件痛苦的事情。
例如使用","
对csv列重新排序:
import csv
infilename = input('Enter .csv to rearrange: ')
with open(infilename, 'r') as infile, open('reordered__'+ infilename, 'a') as outfile:
fieldnamesout = ['B', 'C', 'A', 'D']
fieldnamesin = ['A', 'B', 'C', 'D']
reader = csv.DictReader(infile, delimiter=',', quotechar='"', fieldnames=fieldnamesin)
writer = csv.DictWriter(outfile, delimiter=',', quotechar='"', fieldnames=fieldnamesout, quoting=csv.QUOTE_ALL)
for row in reader:
writer.writerow(row)
竖线|
,或者可能星星*
似乎是一个很好的单字符选择,因为它们不允许在目录和文件名中使用,并且在“常规”文本中相对罕见。
**Q:**对于大型复杂的文本数据库,如果值包含逗号和其他不常见的字符,有什么建议吗?使用竖线(|
)代替逗号(,
)有什么缺点吗?
1条答案
按热度按时间ej83mcc01#
在CSV中使用逗号进行分析时,最常见的方法是将包含逗号的值用双引号(““)括起来。
例如,如果您有一个包含以下数据的CSV文件:
第三行数据的值为“Software Engineer,Team Lead”,其中包含逗号,这可能会导致CSV解析出现问题。要转义逗号,可以将该值用双引号括起来,如下所示:
如果一个值中有双引号,而该值已经用双引号括起来,则可以通过将其加倍来转义它们。例如,考虑以下CSV数据:
我使用PowerBasic编写了一个名为“eCSV”(escape csv)的函数:
在写CSV时,我这样调用: