读取CSV文件时如何将字符串值转换为整数值?

JSm*_*oth 7 python csv string int loops

打开CSV文件时,整数列将转换为字符串值(“ 1”,“ 23”等)。遍历将这些值转换回整数的最佳方法是什么?

import csv

with open('C:/Python27/testweight.csv', 'rb') as f:
    reader = csv.reader(f)
    rows = [row for row in reader if row[1] > 's']

for row in rows:
    print row
Run Code Online (Sandbox Code Playgroud)

CSV文件如下:

import csv

with open('C:/Python27/testweight.csv', 'rb') as f:
    reader = csv.reader(f)
    rows = [row for row in reader if row[1] > 's']

for row in rows:
    print row
Run Code Online (Sandbox Code Playgroud)

mar*_*eau 7

我认为这可以满足您的需求:

import csv

with open('C:/Python27/testweight.csv', 'rb') as f:
    reader = csv.reader(f, delimiter='\t')
    header = next(reader)
    rows = [header] + [[row[0], int(row[1])] for row in reader]

for row in rows:
    print row
Run Code Online (Sandbox Code Playgroud)

输出:

import csv

with open('C:/Python27/testweight.csv', 'rb') as f:
    reader = csv.reader(f, delimiter='\t')
    header = next(reader)
    rows = [header] + [[row[0], int(row[1])] for row in reader]

for row in rows:
    print row
Run Code Online (Sandbox Code Playgroud)


Jas*_*erg 5

如果 CSV 有标题,我建议使用csv.DictReader. 有了这个,你可以:

 with open('C:/Python27/testweight.csv', 'rb') as f:
    reader = csv.DictReader(f)
    for row in reader:
        integer = int(row['Name of Column'])
Run Code Online (Sandbox Code Playgroud)