【发布时间】:2013-02-25 10:52:21
【问题描述】:
基本上我希望在 Python 3.2 中执行的操作是读取包含 3 列的输入 csv 文件,然后创建一个 sql 输出文件,其中输入文件中每行中的 3 个数据将作为插入中的参数查询:
我的代码如下所示:
import os
import csv
InFileName = r'path\test.csv'
OutFileName = r'path\test.sql'
NumCommas = 0
File = open(InFileName)
for line in File:
if line.count(',') > NumCommas:
NumCommas = line.count(',')
File.seek(0)
reader = csv.reader(File)
OutFile = open(OutFileName, 'w')
for rows in reader:
OutFile.write("insert into table_name values(",rows[0],", 2, to_date(", rows[1],",'YYYY-MM-DD'), 1, 1, -1, 0, ",rows[2],", ",rows[2],", 0, 0, 0, sysdate, 0);" + '\n')
OutFile.close()
File.close()
我得到了错误:
列表索引超出范围
【问题讨论】:
-
只是一些python风格的指针: 1. TitleCase 应该只用于类名:变量应该是snake_case。 2. 使用“逗号空格”分隔函数的参数。
-
哦,还有一件事:要非常,非常小心使用可能来自用户的数据构造 SQL 查询。在这种情况下可能不是这样,但并不是一个真正要养成的好习惯。
标签: python csv python-3.x