如何在命令行中确定文件是否为字符串以及是否存在

时间:2018-09-18 06:38:04

标签: python python-3.x shell

我想从命令行获取文件并打开它。如果文件名不是字符串,则将打印(“错误类型”),如果文件无法访问或不存在,则将出现内容“找不到文件名”的错误。我不知道该怎么办。这段代码在下面吗?

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')

1 个答案:

答案 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
相关问题