如何使用Python向csv中的字符串添加双引号
我在CSV文件中设置了数据,我想在文本和字母数字数据中添加双引号,剩下的整数、浮点和小数不在双引号中 有人能帮忙吗 样本数据:如何使用Python向csv中的字符串添加双引号,python,csv,Python,Csv,我在CSV文件中设置了数据,我想在文本和字母数字数据中添加双引号,剩下的整数、浮点和小数不在双引号中 有人能帮忙吗 样本数据: 1, 3434, 789459 ,bdgvdjhjdhf, nagesd232 ,2yuyfudyf, #123 abc calony bangalore 1, 3434, 789459 ,"bdgvdjhjdhf", "nagesd232" ,"2yuyfudyf", "#123 abc calony bangalore" 预期结果将是: 您可以检查哪个类具有
1, 3434, 789459 ,bdgvdjhjdhf, nagesd232 ,2yuyfudyf, #123 abc calony bangalore
1, 3434, 789459 ,"bdgvdjhjdhf", "nagesd232" ,"2yuyfudyf", "#123 abc calony bangalore"
预期结果将是:
您可以检查哪个类具有您的任何值:
list_val = [1, 3434, 789459 ,bdgvdjhjdhf, nagesd232 ,2yuyfudyf, #123 abc calony bangalore]
for i in list_val:
if i.__class__ = str:
.....
您可以检查哪个类具有您的任何值:
list_val = [1, 3434, 789459 ,bdgvdjhjdhf, nagesd232 ,2yuyfudyf, #123 abc calony bangalore]
for i in list_val:
if i.__class__ = str:
.....
您可以按如下方式使用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
,给出以下类型的输出:
1,3434,789459,"bdgvdjhjdhf","nagesd232 ","2yuyfudyf","#123 abc calony bangalore"
如果您的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:
您可以按如下方式使用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
,给出以下类型的输出:
1,3434,789459,"bdgvdjhjdhf","nagesd232 ","2yuyfudyf","#123 abc calony bangalore"
如果您的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:
你应该解释你的解决方案,而不仅仅是发布一段代码。你应该解释你的解决方案,而不仅仅是发布一段代码。我一直在寻找这样的解决方案!我可以让它在单个文件上工作,但我尝试在一个文件目录(大约600个)中迭代它。有可能这样做吗?我有一个悬而未决的问题-我一直在寻找这样的解决方案!我可以让它在单个文件上工作,但我尝试在一个文件目录(大约600个)中迭代它。有可能这样做吗?我有个问题要问-