Python:文件不存在。确保文件名正确

Python:文件不存在。确保文件名正确,python,arguments,Python,Arguments,我用的是一个人的代码 import sys try: filename = sys.argv[1]; represent_points = int(sys.argv[2]); delimeter = sys.argv[3]; if (delimeter=="space"): delimeter = " "; if (delimeter=="tab"): delimeter = "\t"; f = open(filen

我用的是一个人的代码

import sys
try:
    filename = sys.argv[1];
    represent_points = int(sys.argv[2]);
    delimeter = sys.argv[3];
    if (delimeter=="space"):
        delimeter = " ";
    if (delimeter=="tab"):
        delimeter = "\t";
    f = open(filename+".txt","r");
except:
    sys.exit("File not exists. Make sure of the right filename");
from string import *
import degree_sampling
degree_sampling.degree_sampling(filename,represent_points,delimeter);
但是

事实并非如此

milenko@milenko-HP-Compaq-6830s:~/KSCnet_Linux/Python_Code$ stat datan.txt
  File: ‘datan.txt’
  Size: 65          Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d  Inode: 3670784     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/ milenko)   Gid: ( 1000/ milenko)
Access: 2016-04-08 10:54:23.695416155 -0300
Modify: 2016-04-08 10:54:23.695416155 -0300
Change: 2016-04-08 10:54:23.695416155 -0300
 Birth: -

我该怎么办?

python trailrun.py datan 21
只有2个参数,但脚本有:

delimeter = sys.argv[3]
如果您检查错误,我相信您将看到一个
索引器
,因为您试图访问的索引在
sys.argv
中不存在。您应该提供正确数量的参数,或者在脚本中没有提供第三个参数时尝试处理这些情况


还有,看看。这是Python提供的API,用于在脚本中创建命令行参数。

正如一位评论员指出的,可能是问题所在,您缺少最后一个参数delimeter。尝试:

python trialrun.py datan 21 space
另外,正如另一位评论者所指出的,为了在将来不被这一点所迷惑,您应该只捕获预期的错误。替换此项:

except:
为此:

except IOError:

except
捕获每个异常。因此,不确定问题是否出在文件打开时。它甚至可能带有
sys.argv[3]
不存在或任何东西。尝试更改例外情况您应该使用
except IOError:
专门捕获由文件不存在引起的错误
except IOError: