我想从命令行获取文件并打开它。如果文件名不是字符串,则将打印(“错误类型”),如果文件无法访问或不存在,则将出现内容“找不到文件名”的错误。我不知道该怎么办。这段代码在下面吗?
import sys
filename=sys.argv[1]
if type(filename) is str:
pass
else:
raise Exception('wrong type')
try:
open(filename,'r')
except FileNotFoundError:
raise FileNotFoundError('Cannot find filename')
答案 0 :(得分:0)
同意将其发布在Code Review上,但仍然可以简化它:
import sys
filename=sys.argv[1]
if not isinstance(filename,str):
raise Exception('wrong type')
try:
open(filename,'r')
except FileNotFoundError:
raise FileNotFoundError('Cannot find filename')
将if
/ else
简化为if
,效率更高的是isinstance
,而不是type(..) == ..
顺便说一句,sys.argv[1]
始终是字符串,因此不需要if
语句:
import sys
filename=sys.argv[1]
try:
open(filename,'r')
except FileNotFoundError:
raise FileNotFoundError('Cannot find filename')
顺便说一句,os.path.exists
:
if not os.path.exists(filename):
raise FileNotFoundError