有人可以检查下面的代码,因为我在python中使用while和If语句并再调用一个python代码,但它正在执行除调用其他python代码之外的所有代码。
import os
import psycopg2
import os.path
import subprocess
import sys
if os.path.isfile("Z:\\xyz\\New.xlsx"):
while True:
conn = psycopg2.connect(database="gp_bdl", user="adwed1", password="***", host="bdlgp12", port="6200")
cur = conn.cursor()
print ("Opened database successfully")
try:
cur.execute('''select function1();''')
conn.commit()
conn.close()
except psycopg2.OperationalError:
continue
break;
if os.path.isfile("Z:\\xyz\\second.xlsx"):
print("Next has started")
subprocess.call([sys.executable,'Next Python.py'])
else:
print("Nothing")
else:
print("No Process")*
答案 0 :(得分:2)
break
语句之后的所有内容都是死代码。如果您的try
引发错误,continue
语句将开始一个新的迭代(与pass
不同,这只会保持流量从该点开始)。
但如果它没有引发异常,那么您就会突破while
,因此您的第一个if
无法访问。
答案 1 :(得分:0)
import os
import psycopg2
import os.path
import subprocess
import sys
if os.path.isfile("Z:\\xyz\\New.xlsx"):
while True:
conn = psycopg2.connect(database="gp_bdl", user="adwed1", password="***", host="bdlgp12", port="6200")
cur = conn.cursor()
print ("Opened database successfully")
try:
cur.execute('''select function1();''')
conn.commit()
conn.close()
except psycopg2.OperationalError:
continue
if os.path.isfile("Z:\\xyz\\second.xlsx"):
print("Next has started")
subprocess.call([sys.executable,'Next Python.py'])
else:
print("Nothing")
break
else:
print("No Process")*
像我的评论一样,它需要看起来像这样,循环中的break语句的所有内容都不会被执行。
答案 2 :(得分:0)
必须将“break”发送到另一个位置(在例外分支中)。否则代码部分:
if os.path.isfile("Z:\\xyz\\second.xlsx"):
print("Next has started")
subprocess.call([sys.executable,'Next Python.py'])
将永远不会执行,因此您的其他文件未加载。
答案 3 :(得分:0)
为什么你的代码不起作用?回答:
固定代码:
import os
import psycopg2
import os.path
import subprocess
import sys
if os.path.isfile("Z:\\xyz\\New.xlsx"):
while True:
conn = psycopg2.connect(database="gp_bdl", user="adwed1",password="***", host="bdlgp12", port="6200")
cur = conn.cursor()
print ("Opened database successfully")
try:
cur.execute('''select function1();''')
conn.commit()
conn.close()
except psycopg2.OperationalError:
continue
break
if os.path.isfile("Z:\\xyz\\second.xlsx"):
print("Next has started")
subprocess.call([sys.executable,'Next Python.py'])
else:
print("Nothing")
else:
print("No Process")