0
我做了一些調試,遇到了一些麻煩追查爲什麼命令行參數不被下面的代碼拿起正確:Python的命令參數迷路
def ensure_dir(f):
d = os.path.dirname(f)
if not os.path.exists(d):
os.makedirs(d)
def main(argv):
files = ["assignments", "examples", "exams", "lecture_notes", "submissions"]
selectterm = ""
selectclass = ""
try:
opts, args = getopt.getopt(argv, "c:t:", ["class","term"])
except getopt.GetoptError as e:
print 'Question2.py -c <class> -t <term>'
system.exit(2)
for opt, arg in opts:
print arg
print opt
if opt in ("c", "class"):
selectclass = arg
if opt in ("t", "term"):
selectterm = arg
print selectclass
print selectterm
filename = selectterm + "/" + selectclass + "/src/"
for x in files:
directory = str(filename + x +"/")
ensure_dir(directory)
print directory
symblink = "/usr/local/classes/eecs/" + selectterm + "/" + selectclass + "/src/README"
os.symlink(symblink, "README")
if __name__ == "__main__":
main(sys.argv[1:])
這個問題似乎是在對於opt,arg在opts:loop中,因爲命令行參數不會被放入selectclass和selectterm中,但語法對我來說看起來是正確的。這些值存在於argv數組中,當我打印arg和opt時,會在循環中彈出。
代碼意圖不正確,這意味着您的代碼塊可能會以不同於您的預期的地方結束。請張貼正確的縮進代碼。 –
格式化固定 –