python脚本程序,传入参数*要用单引号'*'
2015-01-30 17:53
489 查看
*号作为python脚本的传入参数时,必须用单引号'',才能正确传入。如python test.py 2014 '*' age
python test.py 2014 * age是错误的。
比如
test.py脚本如下
import sys
hdfs_report_historical_year = sys.argv[1]
# eg:2014-05,2014-12,etc.
hdfs_report_historical_month = sys.argv[2]
# eg:all,region,citylevel,etc.
pig_script_type = sys.argv[3]
print hdfs_report_historical_year
print hdfs_report_historical_month
print pig_script_type
其打印三个 传入参数。调用命令
python test.py 2014 * age
输出:
[wizad@srv26 new_pig]$ python test.py 2014 * age
2014
age.pig
appcategory.pig
可以看到参数* 没有正确传入,而是将当前目录下的文件名一起传给 sys.argv[2]和 sys.argv[3]。如果想正确传入要使用'*':python test.py 2014 '*' age
我们可以看*不用单引号会传入很多参数,test.py增加参数打印如下
import sys
hdfs_report_historical_year = sys.argv[1]
# eg:2014-05,2014-12,etc.
hdfs_report_historical_month = sys.argv[2]
# eg:all,region,citylevel,etc.
pig_script_type = sys.argv[3]
print hdfs_report_historical_year
print hdfs_report_historical_month
print sys.argv[4]
print sys.argv[5]
print sys.argv[6]
print sys.argv[7]
print sys.argv[8]
运行
[wizad@srv26 new_pig]$ python test.py 2014 * age
2014
age.pig
appcategory.pig.backup
backup.py
citylevel.pig
config.py
config.pyc
可以看到,当前目录路径名基本上都被传入到脚本中。
所以要小心
python test.py 2014 * age是错误的。
比如
test.py脚本如下
import sys
hdfs_report_historical_year = sys.argv[1]
# eg:2014-05,2014-12,etc.
hdfs_report_historical_month = sys.argv[2]
# eg:all,region,citylevel,etc.
pig_script_type = sys.argv[3]
print hdfs_report_historical_year
print hdfs_report_historical_month
print pig_script_type
其打印三个 传入参数。调用命令
python test.py 2014 * age
输出:
[wizad@srv26 new_pig]$ python test.py 2014 * age
2014
age.pig
appcategory.pig
可以看到参数* 没有正确传入,而是将当前目录下的文件名一起传给 sys.argv[2]和 sys.argv[3]。如果想正确传入要使用'*':python test.py 2014 '*' age
我们可以看*不用单引号会传入很多参数,test.py增加参数打印如下
import sys
hdfs_report_historical_year = sys.argv[1]
# eg:2014-05,2014-12,etc.
hdfs_report_historical_month = sys.argv[2]
# eg:all,region,citylevel,etc.
pig_script_type = sys.argv[3]
print hdfs_report_historical_year
print hdfs_report_historical_month
print sys.argv[4]
print sys.argv[5]
print sys.argv[6]
print sys.argv[7]
print sys.argv[8]
运行
[wizad@srv26 new_pig]$ python test.py 2014 * age
2014
age.pig
appcategory.pig.backup
backup.py
citylevel.pig
config.py
config.pyc
可以看到,当前目录路径名基本上都被传入到脚本中。
所以要小心
相关文章推荐
- python脚本程序,传入参数*要用单引号'*'
- 解决Python扩展程序编译安装的error: command 'mt.exe' failed with exit status 31
- python脚本处理文本时遇到的字符问题:UnicodeDecodeError: " " codec can't decode byte
- python scrapy 安装 lxml 报 ERROR: 'xslt-config' 不是内部或外部命令,也不是可运行的程序的解决办法。
- java调用Python脚本文件的同时,并向其中传入参数
- Mybatis 对单独传入参数string进行判断时报There is no getter for property named '**' in 'class java.lang.String解决办法
- 从 stdin 读取输入的C程序示例 && python脚本调用可执行文件
- 'python'不是内部或外部命令,也不是可运行程序或批处理文件
- C++嵌入Python程序(二):参数传入及返回
- python脚本传入参数--精讲(getopt模块)
- Python程序路径,传入参数
- 命令行运行Python脚本时传入参数的三种方式
- python(39):argparse的用法,从外部传入指定参数
- 【Python 脚本报错】AttributeError:'module' has no attribute 'xxx'的解决方法
- Python脚本语法错误:SyntaxError:(unicode error) 'utf8' codec can't decode byte 0xc0 in position 0: invalids
- 命令行运行Python脚本时传入参数的三种方式
- Cron 的在ubuntu 定时执行自己的程序&& Python获取当前 脚本文件的路径。
- python程序中 socket.error : (113 , 'No route to host ')
- Jim's游戏外挂学习笔记2—适时编写个读取状态的小程序增加一下士气
- windows下为Python脚本生成单独可执行程序的脚本(不用为每个脚本写setup.py了)