在我的脚本中,我有一个大的while:try:loop。在这个内部,我想增加一些指针,以便从我的相机成功下载图片并调整大小,这是我的代码在我更大的python脚本中的样子:
import os.path
try os.path.isfile('/home/pi/CompPictures' + picturenumber + '.JPG'):
os.system('sudo rm /home/pi/Pictures/IMG_0001.JPG')
os.system('sudo rm /home/pi/output.bin')
picturenumber = int(picturenumber))+1
except:
pass
picturenumber包含一个字符串'1'开始然后会增加。
我只想要这个运行一个。所以基本上我不断地运行我的大代码,然后每次扫描更大的循环,我想检查一次这个try语句,如果文件存在,删除一些文件并增加指针。
我收到以下错误。
File "pijob.py", line 210
try os.path.isfile('/home/pi/CompPictures' + picturenumber + '.JPG'):
^
SyntaxError: invalid syntax
对python来说非常新...所以希望这不是一个简单的错误:(
答案 0 :(得分:6)
您需要一个新行和一个:
。试试这个:
try:
os.path.isfile('/home/pi/CompPictures' + picturenumber + '.JPG') #
os.system('sudo rm /home/pi/Pictures/IMG_0001.JPG')
os.system('sudo rm /home/pi/output.bin')
picturenumber = int(picturenumber))+1
except:
pass
无论结果如何,您都可以包含finally
语句来执行代码:
try:
#code
except:
pass
finally:
#this code will execute whether an exception was thrown or not
答案 1 :(得分:5)
尝试这样,
import os.path
try :
os.path.isfile('/home/pi/CompPictures' + picturenumber + '.JPG') #
os.system('sudo rm /home/pi/Pictures/IMG_0001.JPG')
os.system('sudo rm /home/pi/output.bin')
picturenumber = int(picturenumber))+1
except:
pass
python try语法,
try:
some_code
except:
pass
答案 2 :(得分:1)
Python中try / except的语法是
try:
# code that might raise the exception
pass
except <exceptions go here>:
# code that should happen when the
# specified exception is/exceptions are
# raised
pass
except <other exceptions go here>:
# different code that should happen when
# the specified exception is/exceptions
# are raised
pass
else:
# code that follows the code that
# might raise the exception, but should
# only execute when the exception isn't
# raised
pass
finally:
# code that will happen whether or not
# an exception was raised
pass
一些一般准则:
except
块时,将具有更多特定异常的块放在更高的位置(即,确保子类异常出现在它们的基础之前)。具有匹配异常的第一个块将获胜。try
下放置尽可能少的代码。任何可以引发您期望的异常的代码都属于try
;任何只有在没有引发异常时才应执行的代码应该放在else
内。这样,如果它引发了异常,你就不会发现它不会被压扁。另外,您可能需要查看subprocess
module而不是os.system()
。