我正在使用一个人的代码
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: -
我该怎么办?
答案 0 :(得分:2)
python trailrun.py datan 21
只有2个参数,但脚本有:
delimeter = sys.argv[3]
如果您检查错误,我相信您会看到IndexError
,因为您正在尝试访问sys.argv
中不存在的索引。您应该提供正确数量的参数,或者在未向脚本提供第三个参数时尝试处理这些情况。
另外,请查看ArgParse。它是Python提供的用于在脚本中创建命令行参数的API。
答案 1 :(得分:1)
正如一位评论者所指出的那样,问题就在于,你错过了最后一个参数,即分隔符。尝试:
def to_indexed_json
only: {
:title => title,
:description => description,
:categories => categories.map { |c| { :name => c.name}},
:subcategories => subcategories.map { |s| { :name => s.name}},
:entry_type => entry_type_name
},
methods: [:attachment]
end
另外,正如另一位评论者所指出的那样,为了不被混淆,你应该只抓住预期的错误。替换这个:
style="overflow:scroll;"
有了这个:
python trialrun.py datan 21 space