读取CSV文件,并在python中的每个项目上加上双引号

读取CSV文件,并在python中的每个项目上加上双引号,python,csv,Python,Csv,我对python非常陌生,我有一个简单的问题。我有一个包含以下内容的.csv文件: 123,456,789 我想读取它并将其存储到一个名为“number”的变量中,格式如下 "123","456","789" 所以当我这么做的时候 print number 它将给出以下输出 "123","456","789" 有人能帮忙吗 谢谢 更新: 以下是我的代码: input = csv.reader(open('inputfile.csv', 'r')) for item in input:

我对python非常陌生,我有一个简单的问题。我有一个包含以下内容的.csv文件:

123,456,789
我想读取它并将其存储到一个名为“number”的变量中,格式如下

"123","456","789"
所以当我这么做的时候

print number
它将给出以下输出

"123","456","789"
有人能帮忙吗

谢谢

更新: 以下是我的代码:

input = csv.reader(open('inputfile.csv', 'r'))
for item in input:
    item = ['"' + item + '"' for item in item]
print item
它给出了以下输出:

['"123"', '"456"', '"789"']

如果整个文件仅包含数字,则可以将其作为常规文件打开:

with open("file.csv") as f:
    for line in f:
        print ','.join('"{}"'.format(x) for x in line.rstrip().split(','))
最好使用append,tho将行附加到数组中。例如:

with open("file.csv") as f:
    lines=[line.rstrip().split(',') for line in f]

那里有一个模块也可能对您有所帮助。

使用csv模块,您可以逐行读取
.csv
文件,并处理您获得的元组中的每个元素。然后,您可以将每个元素用双引号括起来

import csv
reader = csv.reader(open("file.csv"))
for line in reader:
    # line is a tuple ...
导入csv
csvr=csv.reader(打开(,'r'))
def gimenumbers():
对于csvr中的行:
产生“,”。联接(行)

以下是操作方法:

import csv
from io import StringIO

quotedData = StringIO()

with open('file.csv') as f:
    reader = csv.reader(f)
    writer = csv.writer(quotedData, quoting=csv.QUOTE_ALL)
    for row in reader:
       writer.writerow(row)
使用
reader=csv.reader(StringIO('1,2,3'))
时,输出为:

print quotedData.getvalue()
"1","2","3"

OP所说的是.csv文件,而不是.txt文件。这将给出
123“456”789
,这不是OP所要的。@Rapptz:csv文件是逗号分隔的文件。可能作者的意思是:
,'.join('%s''%tok-for-tok-in-line.split(','))
。无论如何,我会使用
csv
模块,而不是直接拆分行。@Bakuriu:没错,刚在退出时键入,没有pythonshell可以尝试:)我想我的意思很明显,但当然总有人会因为一些小原因而抱怨。天哪!你应该多发布一些你想做的事情。似乎您应该使用列表而不是字符串来存储值,但是如果没有更多的上下文,这是不可能的。如何将writer.writerow(行)存储到变量中?您可以直接写入另一个
StringIO
-对象通常是在for循环和
var.append(…)之前有一个
var=[]
在循环中,你应该问问自己,它是否可以作为列表理解来编写。@mgilson我曾经使用过列表理解,并喜欢将其作为一种语言功能,但我还没有将其内化到编写代码时使用的程度。不过,了解何时处于使用它们的良好状态是一个很好的观点,我的代码(通常)在某些地方可能更具python风格。编辑完成。我花了一段时间内化列表理解——然后花了一段时间内化生成器表达式(例如,
sum(在myiter中x*x代表x)
而不是
sum([x*x在myiter中代表x])
)。但最终在看够了之后,它坚持住了(然后是非常快乐的一天)。我学习python的第一个项目是围绕gnuplot(绘图工具)编写一个基于子流程的包装器。我仍然一直在使用这个包装器,但是当我想到很多代码是多么的“非音速”时,我会不寒而栗。。。
import csv
from io import StringIO

quotedData = StringIO()

with open('file.csv') as f:
    reader = csv.reader(f)
    writer = csv.writer(quotedData, quoting=csv.QUOTE_ALL)
    for row in reader:
       writer.writerow(row)
print quotedData.getvalue()
"1","2","3"