簡體   English   中英

Python:文件不存在。 確保正確的文件名

[英]Python: File not exists. Make sure of the right filename

我正在使用一個人的代碼

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$ python trialrun.py datan 21
File not exists. Make sure of the right filename

事實並非如此

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]

如果您檢查錯誤,我相信您會看到一個IndexError因為您正在嘗試訪問sys.argv中不存在的索引。 您應該提供正確數量的參數,或者在未向腳本提供第三個參數時嘗試處理這些情況。

另外,請查看ArgParse 它是Python提供的用於在腳本中創建命令行參數的API。

正如一位評論者指出的可能是問題,你錯過了最后一個參數,即分隔符。 嘗試:

python trialrun.py datan 21 space

另外,正如另一位評論者指出的那樣,為了不被混淆,你應該只抓住預期的錯誤。 替換這個:

except:

有了這個:

except IOError:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM