python脚本程序,传入参数*要用单引号'*'
*号作为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脚本程序,传入参数*要用单引号'*'的更多相关文章
- 命令行运行Python脚本时传入参数的三种方式
原文链接:命令行运行Python脚本时传入参数的三种方式(原文的几处错误在此已纠正) 如果在运行python脚本时需要传入一些参数,例如gpus与batch_size,可以使用如下三种方式. pyth ...
- [Python]在python中调用shell脚本,并传入参数-02python操作shell实例
首先创建2个shell脚本文件,测试用. test_shell_no_para.sh 运行时,不需要传递参数 test_shell_2_para.sh 运行时,需要传递2个参数 test_shell ...
- Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件
本文通过Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件,代码如下: import java.io.File; import java.io.IOException; import ...
- Java调用Python相关问题:指定python环境、传入参数、返回结果
本篇文章涉及到的操作均在Windows系统下进行,Java调用python在原理上不难,但是可能在实际应用中会有各种各样的需求,网上其他的资料很不全,所以又总结了这篇文章,以供参考. 一.指定pyth ...
- [python]关于函数传入参数
在传入参数时有两个特殊参数,*args,**kwargs,功能如下: def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ' ...
- Python之异常处理(执行python文件时传入参数)
使用sys模块 使用sys模块里的argv参数,用来保存参数值 import sys #sys.argv的作用是获取到运行python文件时,传入的参数 #默认如果运行python文件不传参数,arg ...
- Python脚本带-的参数脚本
一.故事背景 由于先前的工作内容是做后台开发,对于脚本写的很少: 昨天参加面试遇到一道面试题,写一个python脚本: 通过脚本的后面的参数选项获取参数选项后面的字符串进行处理: 问题没记错的话大概是 ...
- 向shell脚本中传入参数
写一个 程序名为 test.sh 可带参数为 start 和 stop 执行 test.sh start执行 start 内容的代码 执行 test.sh stop 执行 stop 内 ...
- 使用C#调用Python脚本,带参数列表 z
static void Main(string[] args) { string[] strArr;//参数列表 string sArguments = @"Pythons.py" ...
随机推荐
- 【Git】CentOS7 通过源码安装Git
yum源仓库里的Git版本更新不及时,最新版的Git是1.8.3,但是官方的最新版早已经更新到2.9.5.想要安装最新版本Git,只能下载源码进行安装 建议最好更新git为较新版本,便于使用 1.查看 ...
- sharepoint环境安装
SharePoint 2013 测试环境安装配置指南 软件版本 Windows Server 2012 标准版 SQL Server 2012 标准版 SharePoint Server 2013 企 ...
- 入口开始,解读Vue源码(一)-- 造物创世
Why? 网上现有的Vue源码解析文章一搜一大批,但是为什么我还要去做这样的事情呢?因为觉得纸上得来终觉浅,绝知此事要躬行. 然后平时的项目也主要是Vue,在使用Vue的过程中,也对其一些约定产生了一 ...
- Python处理正则表达式超时的办法
最近在项目中遇到一个问题,就是需要采用正则匹配一些疑似暗链和挂马的HTML代码,而公司的老大给的正则表达式有的地方写的不够严谨,导致在匹配的时候发生卡死的现象,而后面的逻辑自然无法执行了.虽然用正则表 ...
- JAVA反射之Class类的练习
package zhang; /** * JAVA反射之CLass类的练习 * * 在面向对象的语言里,万事万物皆对象,那么类是谁的对象呢? * 类的类型是CLass * * */ class Tes ...
- Spring消息之AMQP.
一.AMQP 概述 AMQP(Advanced Message Queuing Protocol),高级消息队列协议. 简单回忆一下JMS的消息模型,可能会有助于理解AMQP的消息模型.在JMS中,有 ...
- mysql5.7在centos上安装的完整教程以及相关的“坑”
安装前的准备 Step1: 如果你系统已经有mysql,如一般centos自带mysql5.1系列,那么你需要删除它,先检查一下系统是否自带mysql yum list installed | gre ...
- ELK搭建
ELK安装 elasticsearch安装 * 下载elasticsearch-5.0.0.tar.gz,并解压. 通过elasticsearch.yml可设置host和port. vim confi ...
- 设子数组A[0:k]和A[k+1:N-1]已排好序(0≤K≤N-1)。试设计一个合并这2个子数组为排好序的数组A[0:N-1]的算法。
设子数组A[0:k]和A[k+1:N-1]已排好序(0≤K≤N-1).试设计一个合并这2个子数组为排好序的数组A[0:N-1]的算法.要求算法在最坏情况下所用的计算时间为O(N),只用到O(1)的辅助 ...
- CoreAnimation中layer动画闪烁的原因及解决
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 网上有一段Core Animation层动画的例子,是将vie ...