Python 参数无法正常工作

Python Args not working correctly

我有这个程序应该允许用户输入一个 start/end arg 以及一个文件 arg 然后程序将打开一个 txt 文件并读取行 line s 开始和结束于参数。但是,如果我输入 2 作为开始,输入 10 作为结束,它会告诉我结束必须大于开始错误。我该如何解决这个问题?

#/usr/bin/python

# File name: print_lines.py

import sys
print sys.argv[1]
print sys.argv[2]
if len(sys.argv) != 4:
    print "Input: print.py starting ending\n"
    exit ()
if sys.argv[1] >= sys.argv[2]:
    print "Ending line must be larger than the starting line.\n"
    sys.exit()

start = int(sys.argv[1])
end = int(sys.argv[2])
textinput = str(sys.argv[3])
current = 1
try:
    with open(textinput, 'r') as text:
        for line in text:
            if current >= start and current <=end:
                print line
            current += 1
            if current > end:
                break
        else:
            print "End reached, line finishes at", current-1
except IOError:
    print "File not found. \n"
    sys.exit()

sys.argv 条目始终是字符串。如果你想用数字来处理一些值,你需要将它们转换为 int before 比较它们:

start = int(sys.argv[1])
end = int(sys.argv[2])
if start >= end:
    print "Ending line must be larger than the starting line.\n"
    sys.exit()

比较字符串按字典顺序;因为字符'1'在字符[=14=之前],所以'10'小于'9';第二个字符在比较中没有任何作用。