[英]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.