Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果未手动提供参数,则继续_Python_Unix - Fatal编程技术网

Python 如果未手动提供参数,则继续

Python 如果未手动提供参数,则继续,python,unix,Python,Unix,如果没有手动提供系统参数,则此代码可以正常工作 但是,当给出更早日期的参数时,它仍然打印上一个日期 我不知道出了什么问题 请帮忙,谢谢 如果我运行代码,(pythona.py)它将打印06-Dec-2015 但是如果我给出一个参数,假设(pythona.py 01-Dec-2015)它仍然打印06-Dec-2015,如果语句错误。您正在检查sys.argv[0](即脚本的名称),它的计算结果通常为True(因为它包含实际的字符串)。elif部件将永远不会触发 相反,请检查参数的数量,如下所示:

如果没有手动提供系统参数,则此代码可以正常工作 但是,当给出更早日期的参数时,它仍然打印上一个日期

我不知道出了什么问题 请帮忙,谢谢

如果我运行代码,(
pythona.py
)它将打印
06-Dec-2015

但是如果我给出一个参数,假设(
pythona.py 01-Dec-2015
)它仍然打印
06-Dec-2015

,如果
语句错误。您正在检查
sys.argv[0]
(即脚本的名称),它的计算结果通常为
True
(因为它包含实际的字符串)。
elif
部件将永远不会触发

相反,请检查参数的数量,如下所示:

#!/usr/bin/python
import sys
import datetime
from datetime import timedelta
import time

date = datetime.datetime.today().weekday()
if date ==5 or date ==6:
 print "Its saturday or sunday: exiting"
 exit()

if sys.argv[0]:  #Going Back one Day
 date = datetime.date.today()
 yday = date-timedelta(days=1)
 mm = date.strftime("%b")
 yyyy= str(yday.year)
 dd =  '%02d' % yday.day

#Arguments If Needed
elif sys.argv[1]:
 dd=sys.argv[1][0:2]
 mm=sys.argv[1][2:5]
 yyyy=sys.argv[1][5:9]


date=dd+"-"+mm+"-"+yyyy
print date

你能添加一个失败的例子吗?我希望编辑能有所帮助
if len(sys.argv) == 1:
    # No arguments (except for the script name)
    # ...
elif len(sys.argv) == 2:
    # 1 argument
    # ...