Python 如何将“,”指定为.csv中的3个字符分隔符字符串?
如何指定何时读取文件并在输出中指定此3个字符的字符串作为.csv分隔符?例如:col1,col2,col3,col4 需要用于读取和输出的代码:Python 如何将“,”指定为.csv中的3个字符分隔符字符串?,python,python-3.x,Python,Python 3.x,如何指定何时读取文件并在输出中指定此3个字符的字符串作为.csv分隔符?例如:col1,col2,col3,col4 需要用于读取和输出的代码: import csv with open('a.csv', 'r') as infile, open('reordered.csv', 'a') as outfile: fieldnames = ['B', 'C', 'A', 'D'] writer = csv.DictWriter(outfile, delimiter=',', fi
import csv
with open('a.csv', 'r') as infile, open('reordered.csv', 'a') as outfile:
fieldnames = ['B', 'C', 'A', 'D']
writer = csv.DictWriter(outfile, delimiter=',', fieldnames=fieldnames)
writer.writeheader()
for row in csv.DictReader(infile):
writer.writerow(row)
我想查一下,但不清楚
更新:正如其他人指出的,这可能不是分隔符,而是分隔符和值。无论如何,“我的值”包含逗号,因此,列之间的模式有助于保持列结构。如果要定义,则设置分隔符将无法获得所需的结果
import csv
with open('a.csv', 'r') as f:
reader = csv.reader(f, delimiter=',', quotechar='"')
for row in reader:
print row
编辑:对于代码的更改,它看起来有点像:
with open('a.csv', 'r') as infile, open('reordered.csv', '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)
请注意quoting=csv.QUOTE“u ALL,它指示编写器根据quotechar引用所有字段,这可能是您想要的,也可能不是您想要的,其他选项将是quoting=csv.QUOTE”非数字。似乎您的值是字符串文字。我不知道cvs模块是否可以开箱即用地处理这个问题。这不是解析问题,而是数据处理问题
您的值在引号字符中。因此,要么在处理数据字段_值时截断它们。替换“”,然后将它们重新添加到{}.formatfield_值上,要么直接对数据字段进行操作,保留引号字符。是否尝试过使用类似分隔符=','?如果不尝试',“3x”quotechar=''和QUOTEING=csv.QUOTE_ALLI我认为您不希望引号成为分隔符的一部分,因为这将导致列值为col1、col2、col3和COL4是的,我尝试了:错误:分隔符必须是1个字符的字符串。谢谢。我确实看到了您的逻辑,但在重新排列列上面插入代码时遇到了问题。你能帮我替换一下我的代码吗?很好,保存在重新排列的列中。