您可以使用Python的^{}模块,如下所示:import csv
with open('input.csv', newline='') as f_input, open('output.csv', 'w', newline='') as f_output:
csv_input = csv.reader(f_input, skipinitialspace=True)
csv_output = csv.writer(f_output, quoting=csv.QUOTE_NONNUMERIC)
for row_input in csv_input:
row_output = []
for col in row_input:
try:
row_output.append(int(col))
except ValueError, e:
row_output.append(col)
csv_output.writerow(row_output)
这将从input.csv读取每一行,并尝试转换int中的每个条目。如果失败,则将其存储为字符串。然后将每一行写入output.csv,给出以下类型的输出:
^{pr2}$
如果您的csv还包含float格式的列,可以使用以下方法:import csv
with open('input.csv', newline='') as f_input, open('output.csv', 'w', newline='') as f_output:
csv_input = csv.reader(f_input, skipinitialspace=True)
csv_output = csv.writer(f_output, quoting=csv.QUOTE_NONNUMERIC)
for row_input in csv_input:
row_output = []
for col in row_input:
try:
row_output.append(int(col))
except ValueError, e:
try:
row_output.append(float(col))
except ValueError, e:
row_output.append(col)
csv_output.writerow(row_output)
如果正在使用Python 2.x,请使用:with open('input.csv', 'rb') as f_input, open('output.csv', 'wb') as f_output: