我正在写这样的csv文件
for a in products:
mylist =[]
for h in headers['product']:
mylist.append(a.get(h))
writer.writerow(mylist)
Run Code Online (Sandbox Code Playgroud)
我的几个字段是文本字段可以包含任何字符, " ' \n或其他任何字符.在csv文件中编写该文件最安全的方法是什么.也文件也有整数和浮点数
您应该使用QUOTE_ALL引用选项:
import StringIO
import csv
row = ["AAA \n BBB ,222 \n CCC;DDD \" EEE ' FFF 111"]
output = StringIO.StringIO()
wr = csv.writer(output, quoting=csv.QUOTE_ALL)
wr.writerow( row )
# Test:
contents = output.getvalue()
parsedRow = list(csv.reader([contents]))[0]
if parsedRow == row: print "BINGO!"
Run Code Online (Sandbox Code Playgroud)
使用 csv.QUOTE_ALL 将确保您的所有条目都被引用,如下所示:
"value1","value2","value3"而使用 csv.QUOTE_NONE 将为您提供:value1,value2,value3
此外,这会将条目中的所有引号更改为双引号,如下所示。"somedata"user"somemoredata将成为
"somedata""user""somemoredata您书面的 .csv
但是,如果您将 quotechar 设置为反斜杠字符(例如),则所有引号的输入都将返回为 "。
create=csv.writer(open("test.csv","wb"), quoting=csv.QUOTE_NONE, escapechar='\\', quotechar='"')
for element in file:
create.writerow(element)
Run Code Online (Sandbox Code Playgroud)
前面的例子将变成somedata\"user\"somemoredata干净的。它还会以同样的方式转义元素中的任何逗号。
| 归档时间: |
|
| 查看次数: |
11668 次 |
| 最近记录: |