python中有一个模块sys,sys.argv这个属性提供了对命令行参数的访问。命令行参数是调用某个程序时除程序名外的其他参数。

sys.argv是命令行参数的列表

len(sys.argv)是命令行参数的个数

下面我们用一个简单的例子来说明一下。

#!/usr/bin/python

#coding:utf-8

import sys ##加载sys这个模块。

for i in range(len(sys.argv)):

print "第%d个参数是:%s" % (i,sys.argv[i])

print

运行上面的脚本:

python argv.py 1 2 3

结果如下:

第0个参数是:argv.py

第1个参数是:1

第2个参数是:2

第3个参数是:3

从上面的脚本运行结果我们能看得出来第一个参数是脚本名本身也就是第0个参数。其余的一次类推。

有了这个sys.argv参数我们就可以向脚本传递一些我们想要用的参数。

另一个比较常用的模块os.path可以完成对路径的操作。它提供的函数可以完成管理和操作文件路径中的各个部分,获取文件或子目录信息,文件路径查询操作。

下面列出一些os模块中常用的函数:

函数名:                                 作用:

os.mkfifo('path/filename')/os.mknod('path/filename',mode,device)  创建命名管道/创建文件系统节点

os.remove('path/filename')                       删除文件

os.rename('path/filename1','path/filename2')/renames()        重命名文件

os.stat('path/filename')                        返回文件信息

os.symlink('path/filename','path/ln_filename')             创建符号链接

os.utime()                               更新时间戳

os.tmpfile()                               创建并打开('w+b')一个新的临时文件

os.walk()                                生成一个目录树下的所有文件名

目录/文件夹

os.chdir()/fchdir()           改变当前工作目录/通过一个文件描述符改变当前工作目录

chroot()                改变当前进程的根目录

listdir()                列出指定目录的文件

getcwd()/getcwdu()          返回当前工作目录/功能相同,但返回一个Unicode对象

mkdir()/makedirs()           创建目录/创建多层目录

rmdir()/removedirs()          删除目录/删除多层目录

访问/权限

access()       检验权限模式

chmod()      改变权限模式

chown()/lchown()  改变ower和group ID /功能相同,但不会跟踪链接

umask()       设置默认权限模式

文件描述符操作

open()        底层的操作系统open(对于文件,使用标准的内建open() 函数)

read()/write()     根据文件描述符读取/写入数据

dup()/dup2()     复制文件描述符号/功能相同,但是是复制到一个文件描述符设备号。

makedev()       从major和minor设备号创建一个原始设备号

major() /minor()    从原始设备号获得major/minor设备号

下面是os.path模块中的路径名访问的一些函数

函数描述

os.path.basename()   去掉目录路径,返回文件名

os.path.dirname()     去掉文件名,返回目录路径

os.path.join()       将分离的各部分组合成一个路径名

os.path.split()       返回(dirname(),basename())元组

os.path.splitdrive()     返回(dirvename,pathname)元组

os.path.splitext()      返回(filename,extension)元组

信息

getatime()     返回最近访问时间

getctime()     返回文件创建时间

getmtime()     返回最近文件修改时间

getsize()      返回文件大小(以字节为单位)

查询

exists()     指定路径(文件或目录)是否存在

isabs()     指定路径是否为绝对路径

isdir()     指定路径是否存在且为一个目录

isfile()     指定路径是否存在且为一个文件

islink()     指定路径是否存在且为一个符号链接

ismount()     指定路径是否存在且为一个挂载点

samefile()     两个路径名是否指向同一个文件

本篇将介绍python中sys, getopt模块处理命令行参数

如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?

需要模块:sys

参数个数:len(sys.argv)

脚本名: sys.argv[0]

参数1: sys.argv[1]

参数2: sys.argv[2]

test.py

import sys

print "脚本名:", sys.argv[0]

for i in range(1, len(sys.argv)):

print "参数", i, sys.argv[i]

>>>python test.py hello world

脚本名:test.py

参数 1 hello

参数 2 world

python中使用命令行选项:

例如我们需要一个convert.py脚本。它的作用是处理一个文件,并将处理后的结果输出到另一个文件中。

要求该脚本满足以下条件:

1.通过-i -o选项来区别参数是输入文件还是输出文件.

>>> python convert.py -i inputfile -o outputfile

2.当不知道convert.py需要哪些参数时,用-h打印出帮助信息

>>> python convert.py -h

getopt函数原形:

getopt.getopt(args, options[, long_options])

convert.py

import sys, getopt

opts, args = getopt.getopt(sys.argv[1:], "hi:o:")

input_file=""

output_file=""

for op, value in opts:

if op == "-i":

input_file = value

elif op == "-o":

output_file = value

elif op == "-h":

usage()

sys.exit()

代码解释:

a) sys.argv[1:]为要处理的参数列表,sys.argv[0]为脚本名,所以用sys.argv[1:]过滤掉脚本名。

b) "hi:o:": 当一个选项只是表示开关状态时,即后面不带附加参数时,在分析串中写入选项字符。当选项后面是带一个附加参数时,在分析串中写入选项字符同时后面加一个":"号。所以"hi:o:"就表示"h"是一个开关选项;"i:"和"o:"则表示后面应该带一个参数。

c) 调用getopt函数。函数返回两个列表:opts和args。opts为分析出的格式信息。args为不属于格式信息的剩余的命令行参数。opts是一个两元组的列表。每个元素为:(选项串,附加参数)。如果没有附加参数则为空串''。

getopt函数的第三个参数[, long_options]为可选的长选项参数,上面例子中的都为短选项(如-i -o)

长选项格式举例:

--version

--file=error.txt

让一个脚本同时支持短选项和长选项

getopt.getopt(sys.argv[1:], "hi:o:", ["version", "file="])

python 命令行参数-python中命令行参数相关推荐

  1. Python数据分析 找出数组中每行(或每列)中指定的百分位数 numpy.percentile()

    [小白从小学Python.C.Java] [Python-计算机等级考试二级] [Python-数据分析] Python数据分析 找出数组中每行(或每列) 中指定的百分位数 numpy.percent ...

  2. Python练习——二维数组中每行最大值和每行和

    Python练习--二维数组中每行最大值和每行和 求一个3*3二维数组中每行的最大值和每行的和. 输入格式: 在一行中输入9个小于100的整数,其间各以一个空格间隔 输出格式: 输出3行3列的二维数组 ...

  3. python命令行参数传递_Python中 命令行参数传递 与 处理

    英文原文: http://www.artima.com/weblogs/viewpost.jsp?thread=4829 很多人会在 if __name__ == "__main__&quo ...

  4. python删除行_python 删除文件中指定行

    原博文 2017-03-20 19:18 − 代码适用情况:xml文件,循环出现某几行,根据这几行中的某个字段删掉这几行这段代码的作用删除jenkins中config.xml中在自动生成pipline ...

  5. python魔法参数_python中的魔法参数:*args和**kwargs

    def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '------------------- ...

  6. python函数**什么意思_python中函数的参数是什么意思

    本文主要讲解python中函数的参数及参数的类型 默认参数def enroll(name, gender, age=6, city='Beijing'): print('name:', name) p ...

  7. Python数据可视化——matplotlib.pyplot中plt的参数详解

    matplotlib.pyplot中plt的参数详解: #平滑折线的示例 # plt.plot(xnew, ynew, marker='.', markevery=markevery, ls='-', ...

  8. python xgboost参数_xgboost中XGBClassifier()参数详解

    常规参数 booster gbtree 树模型做为基分类器(默认) gbliner 线性模型做为基分类器 silent silent=0时,不输出中间过程(默认) silent=1时,输出中间过程 n ...

  9. linux 命令连接符,Linux 中命令链接操作符的十个最佳实例

    Linux 中命令链接操作符的十个最佳实例 日期:2017-12-14 浏览:1416次 评论:0条 侧边栏 英文:Tecmint,翻译:Linux中国/geekpi https://linux.cn ...

  10. html h1转换为行内,css中转换为行内样式的解决方案(css-inline)

    聊聊场景 发送邮件 在第三方网站中嵌入HTML 从其他编辑器拷贝编辑好的文章发布到微信.今日头条等自媒体 在以上场景使用行内样式的兼容性要高很多,也可以保持原样式不变 解决方案 这两种方案功能和 Ap ...

最新文章

  1. svn通讯协议_【SVN】——svn协议和http协议
  2. Squid服务在实际工作中的应用、优化和流量监控
  3. 信息系统项目管理师:第1章:信息化与信息系统(2)-重点汇总
  4. 【CLRS】《算法导论》读书笔记(一):堆排序(Heapsort)
  5. lan8720a自协商启动_紫金矿业2020届校招海外9站全面启动(面向全专业)
  6. Linux使用cmake编译项目,如何使用cmake在linux中构建Qt项目(How to build Qt project in linux with cmake)...
  7. 关于如何学好网络 送给学习网络工程的学生
  8. 特征做得好,模型没烦恼
  9. linux中查看mysql版本的方法汇总
  10. H凹变换—lhMorpHConcave
  11. 学习C++: VSCode配置C++开发环境
  12. Oracle 11g数据库基础教程(第2版)-课后习题-第十二章
  13. python文件怎么打开_py文件怎么打开?
  14. JS实现随机切换姓名与头像
  15. 易效能:有哪些可以高效休息的方法?
  16. LeetCode常见题型——背包问题
  17. 【opencv 450 Image Processing】Out-of-focus Deblur Filter失焦去模糊滤镜
  18. 浅谈海明码,码距及其计算问题(看过的都明白了)
  19. 十一、BDB ManyToMany
  20. python获取erp数据_python自学之路-数据读取

热门文章

  1. docker 部署redis
  2. mysql检查备份数据脚本并在zabbix上告警
  3. C++ 面向对象(类对象)
  4. 一.js高级(4)-函数调用-this指向-其他参数
  5. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---02
  6. Python 获取接口数据,解析JSON,写入文件
  7. B-JUI(Best jQuery UI) 前端框架
  8. MySQL模拟Oralce闪回操作
  9. ubuntu 12.04lts 安装insight6.8a
  10. 定时备份FTP+Mysql到云服务器