如何用单引号包裹 CSV 列

How to wrap a CSV column with single quotes

如何使用 Python 脚本将 CSV 列用单引号括起来? 我正在尝试使用终端来完成此任务。

使用以下 Python 脚本:

import sys
import re

def addQuotes( str ):
    matches = re.match( '^".*"$', str )
    if matches == None:
        return "'" + str + "'"
    return str

for line in sys.stdin:
    line = line.strip()
    parts = line.split( ',' )
    newParts = map( addQuotes, parts )

之后,运行在终端上输入以下命令:

python QuoteCSV.py < old.csv > new.csv

旁注:如果要用双引号引起来,可以将 addQuotes 函数的 return 语句更改为:

return '"'+str+'"'

使用csv模块操作csv。它的存在是为了不再编写此类代码,而不必为 csv 方言(例如不同的定界符)以及何时引用等而烦恼

通读 the documentation 以了解它对您的作用以及您应该使用它的原因。

import sys
import csv


reader = csv.reader(sys.stdin)
writer = csv.writer(sys.stdout, delimiter=',', quoting=csv.QUOTE_ALL)
for row in reader:
    writer.writerow(row)

python test.py < check.py > check_out.py通话:

check.py:

bla,blubb,test
foo,,bar
bingo,bongo,bong

check_out.py:

"bla","blubb","test"
"foo","","bar"
"bingo","bongo","bong"

其他类似问题:

  • Adding quotes and a tab to each element in a csv file
  • Python to insert quotes to column in CSV