Python try finally 语句 运行 另一个文件
Python try finally statement to run another file
我在正确执行 try and finally 语句时遇到问题。我试图让另一个 Python 文件在用户与第一个 program.For 示例交互后执行,一旦第一个程序是 运行 ,用户将被要求扫描他们的标签,这将为该用户创建一个唯一的用户 ID;扫描他们的标签后,将执行第二个 python 文件。我的问题是,无论是否先扫描标签,只要执行第一个文件,第二个文件就会一直 运行。我在下面添加了我的代码和注释以帮助更好地解释。有什么想法吗?
import RPi.GPIO as GPIO
from mfrc522 import SimpleMFRC522
# Second File being ran
import medform
reader = SimpleMFRC522()
try:
# user id being created
c = string.ascii_letters + string.digits
op = "".join(choice(c) for x in range(randint(8,16)))
# Printed before tag is scanned
print("Please Scan tag " )
reader.write(op + op)
# if tag is scanned / id created open second file
if reader.write(op + op):
os.system('python medform.py')
else:
print("Scan Tag First" )
# Print after tag is scanned
print("Scan Complete")
finally:
GPIO.cleanup()
正在导入文件运行就这样,有 2 种方法可以完成您想要的操作:
- 在需要时导入文件运行
- 在另一个文件中定义一个主函数,您可以从第一个文件 运行 而不是将所有代码都放在顶层
在大多数情况下,第二个选项是最好的,因为您通常不希望文件在导入时实际执行操作。
所以在第二个文件中你将拥有:
def main():
# the code you want to run (make sure to indent it)
那么在第一个你可以有:
import medform
# ...
medform.main()
我在正确执行 try and finally 语句时遇到问题。我试图让另一个 Python 文件在用户与第一个 program.For 示例交互后执行,一旦第一个程序是 运行 ,用户将被要求扫描他们的标签,这将为该用户创建一个唯一的用户 ID;扫描他们的标签后,将执行第二个 python 文件。我的问题是,无论是否先扫描标签,只要执行第一个文件,第二个文件就会一直 运行。我在下面添加了我的代码和注释以帮助更好地解释。有什么想法吗?
import RPi.GPIO as GPIO
from mfrc522 import SimpleMFRC522
# Second File being ran
import medform
reader = SimpleMFRC522()
try:
# user id being created
c = string.ascii_letters + string.digits
op = "".join(choice(c) for x in range(randint(8,16)))
# Printed before tag is scanned
print("Please Scan tag " )
reader.write(op + op)
# if tag is scanned / id created open second file
if reader.write(op + op):
os.system('python medform.py')
else:
print("Scan Tag First" )
# Print after tag is scanned
print("Scan Complete")
finally:
GPIO.cleanup()
正在导入文件运行就这样,有 2 种方法可以完成您想要的操作:
- 在需要时导入文件运行
- 在另一个文件中定义一个主函数,您可以从第一个文件 运行 而不是将所有代码都放在顶层
在大多数情况下,第二个选项是最好的,因为您通常不希望文件在导入时实际执行操作。
所以在第二个文件中你将拥有:
def main():
# the code you want to run (make sure to indent it)
那么在第一个你可以有:
import medform
# ...
medform.main()