更新
我已经实现了一些新代码,现在出现了一个新问题:
query_dir = '/path/to/sql'
sql_commands = []
with open(inputfile, 'r') as argfile:
infiles = argfile.readlines()
for infile in infiles:
print("infile: {0}".format(infile))
try:
infile = os.path.join(query_dir, infile).replace('\n', '')
queries = [sqlfile.strip() for sqlfile in open(infile, 'r')]
except IOError as e:
print("IOError: {0}".format(e))
for query in queries:
sql_commands.append(query)
print("sql commands: {0}".format(sql_commands))
现在最后,当print语句给出SQL命令时,文件的内容存在,但格式不适合我。例如,它看起来像这样:
sql commands: ['-- comment', '', 'select column1, column2,',
. . . 'from x p', . . .]
我想让输入文件的一行文件中的SQL查询格式化为由命令运行:
cursor.execute(command)
从下面......
原始问题
我尝试过不同的路径和位置(包括在输入文件中使用绝对路径),我不知道发生了什么。我尝试将所有文件与脚本放在同一目录中,这也给出了同样的错误。我不确定如何将SQL文件解释为代码内部的文件...我有一个文件,每行都有一个文件中的SQL查询:
input.file:
query_file1.sql
query_file2.sql
query_file3.sql
我有一个Python脚本,它带有一个SQL查询文件(其中一个)并执行查询并使用pprint
和{{1打印它的漂亮版本的输出}}。
我希望能够在文件的每一行放置一个包含SQL查询的文件名,然后使用相同的Python脚本处理该文件。
我很难到达那里。我可以打印文件的行,每行都是带有SQL查询的输入文件:
PrettyPrinter
我不确定如何这样做以便我可以使用此代码段:
. . .
with open(inputfile, 'r') as argfile:
lines = argfile.readlines()
for line in lines:
print(line)
. . .
我需要将输入文件的行转换为参数,以便我可以使用脚本处理它们。
答案 0 :(得分:1)
I think you need a list named sql_commands.First you get line in file,
then store it in a list.
sql_commands=[]
with open(inputfile, 'r') as argfile:
lines = argfile.readlines()
for line in lines:
with open(line,'r') as sqlfile:
sqls=sqlfile.readlines()
for sql in sqls:
sql_commands.append(sql)