python学习sys.argv块中,输出一直显示提示没有参数,该怎么显示正确结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习sys.argv块中,输出一直显示提示没有参数,该怎么显示正确结果相关的知识,希望对你有一定的参考价值。

import os
import time
import sys
def backup():
'''执行备份操作
'''
if not os.path.exists(target_dir):
os.mkdir(target_dir)
zip_command = "rar a %s %s" %(target_dir + target_file, source)

if os.system(zip_command)==0:
print('备份成功')
else:
print('备份失败')

if __name__ == "__main__":

target_dir = 'D:\\backup\\'
target_file = 'web_backup_' + time.strftime('%Y%m%d') + '.rar'

if len(sys.argv) < 2:
print '没有指定参数'
sys.exit()
if sys.argv[1].startswith('--'):
option = sys.argv[1][2:]
if option == 'version':
print 'Version 1.0'
sys.exit()
elif option == 'help':
print '''\
在Windows系统下通过调用winrar的rar.exe,备份由参数指定的目录或文件。
执行程序前需要把rar.exe的路径加入PATH变量。
备份文件的文件名里包含当天的日期。
备份到D:\backup\目录下。
--version : 输出版本号
--help : 输出帮助信息'''
sys.exit()
else:
print '未知参数'
sys.exit()
else:
source = ''
for filename in sys.argv[1:]:
print filename
source += ' '+filename
print 'source = ', source, '\n'

# 确认PATH变量里是否有winrar目录
path_value = os.popen('wmic ENVIRONMENT where "name=\'path\'" get VariableValue /value')
have_rar = path_value.read().find('WinRAR')
if have_rar == '-1':
print '请在系统PATH变量里设置WinRAR的路径'
sys.exit()
backup()

看你的意思应该是执行脚本的时候传入相关的参数,这个在python里面可以用getopt来实现。
因为你在脚本里面没有定义传入参数,len(sys.argv) 值应该为1,既只有‘脚本名’这个参数。所以运行的时候一直走if len(sys.argv) < 2: 这个分支。
参考技术A sys.argv是只有[0]项的吧?你得把他人为分片,再来求它的len

python系统学习:模块积累(持续更新)

# Author : Sunny
# 模块初识
‘‘‘模块 = 库分为标准库(自带,导入即可)/第三方库(必须安装才可使用)‘‘‘

# 标准库之sys模块

import sys

# sys.pyth 会输出路径(环境变量):包括标准库的路径、第三方库的路径
print(sys.path)
# sys.argv 会输出当前脚本的路径(相对)
print(sys.argv)
print(sys.argv[2]) # 会输出参数,用户输入参数,代码依据数组位置找到参数

# 标准库之os模块:多用于和系统交互
import os

# read = os.system("dir")
read = os.popen("dir").read()
print("-->", read)
# 与电脑交互建立新的文件夹,到此目录
# os.mkdir("new_dir")





















以上是关于python学习sys.argv块中,输出一直显示提示没有参数,该怎么显示正确结果的主要内容,如果未能解决你的问题,请参考以下文章

[python]输入与输出

python学习体会1

python sys.argv用法

python sys.argv用法

Python命令行参数sys.argv[]

Python中 sys.argv[]的用法简明解释