我对Python还是很陌生,并尝试如下所述找出从文件中使用变量的方法。
我有一个文件query.txt
query1="select count(*) from table1;"
query2="select count(*) from table2;"
我的主程序:
conn=connect_db()
print >>log,"connection successful"
c=conn.cursor()
with open('query.txt') as fp:
for line in fp:
print line
i=1
query="query"+str(i) #If I print query I get query1
#I am looking to pass query1 as argument, to execute first query
c.execute(query);
r=c.fetchone()
print r
i+=1
在shell中,我将使用c.execute($ query)并将其替换为其分配的值。如何使用Python实现?
感谢您的帮助和指导。
答案 0 :(得分:1)
将query.txt
更改为:
select count(*) from table1;
select count(*) from table2;
然后用Python:
for query in fp:
c.execute(query)
答案 1 :(得分:0)
您可以使用sys库。 https://docs.python.org/2/library/sys.html?highlight=argv#sys.argv
传递给Python脚本的命令行参数列表。 argv [0]是脚本名称(是否为完整路径名取决于操作系统)。如果命令是使用解释器的-c命令行选项执行的,则argv [0]设置为字符串'-c'。如果没有脚本名称传递给Python解释器,则argv [0]为空字符串。
要遍历标准输入或命令行上提供的文件列表,请参阅fileinput模块。
Argv允许您在运行脚本时从命令行传递参数。可以在这里找到教程: https://www.tutorialspoint.com/python/python_command_line_arguments.htm
[编辑] 2个假设:
不说它不能正常工作,但这是我所知道的。
[EDIT2] Alex Hall的答案实际上是OP所需要的,因此请专注于那个。