Mic*_*las 230
我会用io.StringIO:
from io import StringIO
import csv
scsv = """text,with,Polish,non-Latin,letters
1,2,3,4,5,6
a,b,c,d,e,f
g??,zó?ty,w??,idzie,w?sk?,dró?k?,
"""
f = StringIO(scsv)
reader = csv.reader(f, delimiter=',')
for row in reader:
print('\t'.join(row))
Run Code Online (Sandbox Code Playgroud)
更新的简化版本csv:
reader = csv.reader(scsv.split('\n'), delimiter=',')
for row in reader:
print('\t'.join(row))
Run Code Online (Sandbox Code Playgroud)
或者你可以简单地将split()这个字符串split()用作分隔符,然后将\n每行作为值,但这样你必须知道引用,所以split()首选使用模块.
ada*_*amk 67
简单 - csv模块也适用于列表:
>>> a=["1,2,3","4,5,6"] # or a = "1,2,3\n4,5,6".split('\n')
>>> import csv
>>> x = csv.reader(a)
>>> list(x)
[['1', '2', '3'], ['4', '5', '6']]
Run Code Online (Sandbox Code Playgroud)
nvd*_*nvd 10
>>> a = "1,2"
>>> a
'1,2'
>>> b = a.split(",")
>>> b
['1', '2']
Run Code Online (Sandbox Code Playgroud)
要解析CSV文件:
f = open(file.csv, "r")
lines = f.read().split("\n") # "\r\n" if needed
for line in lines:
if line != "": # add other needed checks to skip titles
cols = line.split(",")
print cols
Run Code Online (Sandbox Code Playgroud)
csv.reader() https://docs.python.org/2/library/csv.html的官方文档 非常有用,它说
文件对象和列表对象都是合适的
import csv
text = """1,2,3
a,b,c
d,e,f"""
lines = text.splitlines()
reader = csv.reader(lines, delimiter=',')
for row in reader:
print('\t'.join(row))
Run Code Online (Sandbox Code Playgroud)
正如其他人已经指出的那样,Python包含一个用于读取和写入CSV文件的模块.只要输入字符保持在ASCII限制范围内,它就能很好地工作.如果您想处理其他编码,则需要做更多工作.
csv模块的Python文档实现了csv.reader的扩展,它使用相同的接口但可以处理其他编码并返回unicode字符串.只需复制并粘贴文档中的代码即可.之后,您可以像这样处理CSV文件:
with open("some.csv", "rb") as csvFile:
for row in UnicodeReader(csvFile, encoding="iso-8859-15"):
print row
Run Code Online (Sandbox Code Playgroud)
小智 6
根据文件:
虽然模块不直接支持解析字符串,但可以轻松完成:
import csv
for row in csv.reader(['one,two,three']):
print row
Run Code Online (Sandbox Code Playgroud)
只需将您的字符串转换为单个元素列表即可.
在文档中明确显示此示例时,导入StringIO对我来说似乎有些过分.
| 归档时间: |
|
| 查看次数: |
206007 次 |
| 最近记录: |