简体   繁体   中英

Read a CSV file and put double quote on each item in python

I'm really new to python and I have a simple question. I have a .csv file with the following content:

123,456,789

I want to read it and store it into a variable called "number" with the following format

"123","456","789"

So that when I do

print number

It will give the following output

"123","456","789"

Can anybody help?

Thanks!

Update: The following is my code:

input = csv.reader(open('inputfile.csv', 'r'))
for item in input:
    item = ['"' + item + '"' for item in item]
print item

It gave the following output:

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

Here's how to do it:

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)

with reader=csv.reader(StringIO('1,2,3')) the output is:

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

If the whole file only contains numbers you can just open it as a regular file:

with open("file.csv") as f:
    for line in f:
        print ','.join('"{}"'.format(x) for x in line.rstrip().split(','))

It'd be better to append the lines to an array with append, tho. For example:

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

There is a CSV module there that might help you as well.

Using the csv-module, you can read the .csv file line-by-line and process each element from a tuple you gain. You can then just enclose each element into double-quotes.

import csv
reader = csv.reader(open("file.csv"))
for line in reader:
    # line is a tuple ...
import csv
spamReader = csv.reader(open('eggs.csv', 'rb'))
for row in spamReader:
    this_row = ['"' + str(item) + '"' for item in row]
    print this_row
import csv 
csvr = csv.reader(open(<yourfile.csv>,'r'))

def gimenumbers():
   for row in csvr:
     yield '","'.join(row)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM