栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

go,python命令行参数

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

go,python命令行参数

csdn请注意吃相,乱删博客

python sys.argv


如图,第一个参数是脚本路径。

补充sys:

sys.argv           命令行参数List,第一个元素是程序本身路径
sys.exit(n)        退出程序,正常退出时exit(0)
sys.version        获取Python解释程序的版本信息
sys.maxint         最大的Int值
sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform       返回操作系统平台名称
sys.stdin          输入相关
sys.stdout         输出相关
sys.stderror       错误相关

补充os:

os.getcwd()                 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname")         改变当前脚本工作目录;相当于shell下cd
os.curdir                   返回当前目录: ('.')
os.pardir                   获取当前目录的父目录字符串名:('..')
os.makedirs('dir1/dir2')    可生成多层递归目录
os.removedirs('dirname1')   若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname')         生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname')         删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname')       列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove()                 删除一个文件
os.rename("oldname","new")  重命名文件/目录
os.stat('path/filename')    获取文件/目录信息
os.sep                      操作系统特定的路径分隔符,win下为"\",Linux下为"/"
os.linesep                  当前平台使用的行终止符,win下为"tn",Linux下为"n"
os.pathsep                  用于分割文件路径的字符串
os.name                     字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command")   运行shell命令,直接显示
os.environ                  获取系统环境变量
os.path.abspath(path)       返回path规范化的绝对路径
os.path.split(path)         将path分割成目录和文件名二元组返回
os.path.dirname(path)       返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path)      返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path)        如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path)         如果path是绝对路径,返回True
os.path.isfile(path)        如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path)         如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path)      返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path)      返回path所指向的文件或者目录的最后修改时间
argparse模块
import argparse
args = argparse.ArgumentParser()
ArgumentParse类

官方文档说的已经很清楚了:

Keyword Arguments:

  • prog – 程序的名称 (default: sys.argv[0])
  • usage – 用法消息(默认值:从参数自动生成)
  • description – 程序功能的描述(–help出来那玩意儿)
  • epilog – 参数描述后面的文本
  • parents – 应该将其参数复制到此解析器中的解析器
  • formatter_class – 用于打印帮助消息的HelpFormatter类
  • prefix_chars – 命令的前缀,默认是-
  • fromfile_prefix_chars – Characters that prefix files containing
    additional arguments
  • argument_default – 所有参数的默认值
  • conflict_handler – String indicating how to handle conflicts
  • add_help --是否增加-h/-help选项 (default: True)
  • allow_abbrev – Allow long options to be abbreviated unambiguously
add_argument()常用参数
    def add_argument(
        self,
        *name_or_flags: Text,
        action: Union[Text, Type[Action]] = ...,
        nargs: Union[int, Text] = ...,
        const: Any = ...,
        default: Any = ...,
        type: Union[Callable[[Text], _T], Callable[[str], _T], FileType] = ...,
        choices: Iterable[_T] = ...,
        required: bool = ...,
        help: Optional[Text] = ...,
        metavar: Optional[Union[Text, Tuple[Text, ...]]] = ...,
        dest: Optional[Text] = ...,
        version: Text = ...,
        **kwargs: Any,
    ) -> Action: ...
  1. name or flags - 指定参数的形式,一般就写两个,一个短参数,一个长参数
  2. type - 指定类型,type = int
  3. help - 设置这个选项的帮助信息
  4. dest - 指定将参数解析到哪,解析后可以通过.取值
  5. metavar - 参数的名字,在显示帮助信息时才用到
  6. choices - 设置参数值的范围
  7. nargs - 指定这个参数后面的value有多少个,+表示至少一个,?表示一个或0个,可以写一个ini值代表要几个参数
  8. required - 是否必传True/False
import argparse
import os
args = argparse.ArgumentParser()

args.add_argument("-f","--file",required=True,choices=os.listdir(os.getcwd()),dest='file')
res = args.parse_args()
print(res.file)

Go os.Args
package main

import (
	"fmt"
	"os"
)

//os.Args demo
func main() {
	//os.Args是一个[]string
	if len(os.Args) > 0 {
		for index, arg := range os.Args {
			fmt.Printf("args[%d]=%vn", index, arg)
		}
	}
}
//$ ./args_demo a b c d
args[0]=./args_demo
args[1]=a
args[2]=b
args[3]=c
args[4]=d

os.Args是一个存储命令行参数的字符串切片,它的第一个元素是执行文件的名称。

flag包

flag包支持的命令行参数类型有bool、int、int64、uint、uint64、float float64、string、duration。

flag参数有效值
字符串flag合法字符串
整数flag1234、0664、0x1234等类型,也可以是负数。
浮点数flag合法浮点数
bool类型flag1, 0, t, f, T, F, true, false, TRUE, FALSE, True, False。
时间段flag任何合法的时间段字符串。如”300ms”、”-1.5h”、”2h45m”。
合法的单位有”ns”、”us” /“µs”、”ms”、”s”、”m”、”h”。
定义命令行参数 flag.Type()

返回的是该类型的指针。

flag.Type(flag名, 默认值, 帮助信息)*Type
name := flag.String("name", "张三", "姓名")
age := flag.Int("age", 18, "年龄")
married := flag.Bool("married", false, "婚否")
delay := flag.Duration("d", 0, "时间间隔")
flag.TypeVar()
flag.TypeVar(Type指针, flag名, 默认值, 帮助信息)

var name string
var age int
var married bool
var delay time.Duration
flag.StringVar(&name, "name", "张三", "姓名")
flag.IntVar(&age, "age", 18, "年龄")
flag.BoolVar(&married, "married", false, "婚否")
flag.DurationVar(&delay, "d", 0, "时间间隔")
flag.Parse()

通过以上两种方法定义好命令行flag参数后,需要通过调用flag.Parse()来对命令行参数进行解析。

支持的命令行参数格式有以下几种:

-flag xxx (使用空格,一个-符号)
--flag xxx (使用空格,两个-符号)
-flag=xxx (使用等号,一个-符号)
--flag=xxx (使用等号,两个-符号)
flag.Args()  返回命令行参数后的其他参数,以[]string类型
flag.NArg()  //返回命令行参数后的其他参数个数
flag.NFlag() //返回使用的命令行参数个数
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/974672.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号