当前位置:首页 » 编程语言 » python脚本参数

python脚本参数

发布时间: 2023-01-15 09:44:01

python 脚本之统计基因组文件中染色体长度及N碱基数目

re模块是Python中的正则表达式调用模块,在python中,通过将正则表达式内嵌集成re模块,程序员们可以直接调用来实现正则匹配。

正则表达式的大致匹配过程是:

re模块所支持的方法有如下:

其中,pattern为匹配模式,由re.compile生成,例如: pattern = re.compile(r'hello')

参数flag是匹配模式,取值可以使用按位或运算符’|’表示同时生效,如 re.I | re.M。可选值有:

注:以上七个方法中的flags同样是代表匹配模式的意思,如果在pattern生成时已经指明了flags,那么在下面的方法中就不需要传入这个参数了。

1. re.match(pattern, string[, flags])

2. re.search(pattern, string[, flags])

3. re.split(pattern, string[, maxsplit])

4. re.findall(pattern, string[, flags])

5. re.finditer(pattern, string[, flags])

6. re.sub(pattern, repl, string[, count])

7. re.subn(pattern, repl, string[, count])

描述

注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
语法

参数

返回值

实例

以上实例输出结果如下:

参考
https://www.cnblogs.com/chengege/p/11190782.html
https://www.runoob.com/python/att-string-strip.html

㈡ Python3脚本传参实战(2个方法3个传参列表的案例)

在一些测试平台对接时或者用例执行时,或多或少会用到Python脚本传参的问题。

test.py脚本

#!/usr/bin/python3

import sys

print ('参数个数为:', len(sys.argv), '个参数。')

print ('参数列表:', str(sys.argv))

print ('脚本名:', str(sys.argv[0]))

print ('第一个参数:', sys.argv[1])

执行python3 test.py arg1 arg2 arg3

参数个数为: 4 个参数。

参数列表: ['test.py', 'arg1', 'arg2', 'arg3']

脚本名: test.py

第一个参数: arg1

test.py脚本

#!/usr/bin/python3

import argparse

# 生成了一个命令行参数的对象

parser = argparse.ArgumentParser(description='Test for argparse')

parser.add_argument('--name', '-n', help='name属性,非必要参数')

parser.add_argument('--year', '-y', help='year 属性,非必要参数,但有默认值', default=2017)

parser.add_argument('--body', '-b', help='body属性,必要参数', required=True)

args = parser.parse_args()

print (args.year,  args.name, args.body)

查看帮助python3 test.py --help

usage: test.py [-h] [--name NAME] [--year YEAR] --body BODY

Test for argparse

optional arguments:

  -h, --help  show this help message and exit

  --name或-n NAME  name属性,非必要参数

  --year或-y YEAR  year属性,非必要参数,但有默认值

  --body或-b BODY  body 属性,必要参数

执行python3 test.py --year 2021 -n robot  --body "are you ok?"

2021 robot are you ok?

以方法2中的test.py脚本为例

python3 test.py --year 2021 --body [\"test\", \"robot\",\"boy\" ]

2021 ["test", "robot", "boy" ]

以方法1中的test.py脚本为例

python3 test.py [\"test\", \"robot\",\"boy\" ]

参数个数为: 2个参数。

参数列表: ['test.py', '[\"test\", \"robot\", \"boy\" ]']

脚本名: test.py

第一个参数: ["test", "robot", "boy" ]

其实此时传入的第一个参数是一个字符,需要转换为列表。

import json

json.loads(sys.argv[1])

test_arg.py脚本

#!/usr/bin/python3

import argparse

import os

# 生成了一个命令行参数的对象

parser = argparse.ArgumentParser(description='Test for argparse')

parser.add_argument('--body', '-b', help='body属性,必要参数', required=True)

args = parser.parse_args()

print (args.body)

command=python3 + '  ' + test_sys.py+ '  '  + args.body

print (command)

str=('command')

result=os.system(str)

test_sys.py脚本

#!/usr/bin/python3

import sys

import json

print ('第一个参数:', sys.argv[1])

print ('列表:', json.loads(sys.argv[1]))

执行python3 test_arg.py --body  [\"test\", \"robot\",\"boy\" ]

python3  test_sys.py  ["test", "robot", "boy" ]

test_sys.py执行报错,转json失败。

还记得我们案例2中,脚本的传入指定参数和实际传入参数嘛?

test_arg.py脚本我们稍微优化下,在传参前先字符替换下。

["test", "robot", "boy" ]转换为[\"test\", \"robot\",\"boy\" ]即可。

command.replace(' " ' , r ' \" ') 添加到command=之后,再次运行看看呢?

㈢ 怎么在python脚本里面调用另外一个带参数的脚本

一般情况下都是通过import脚本,然后直接调用脚本里的函数,调用函数就可以直接传递参数;因为Python并不像C语言那样有main函数。

importB(脚本名称)
B.hello(参数A,参数B)

㈣ Windows10 中建立自动执行的python脚本,解决python不产生日志的问题

问题:按照网上的教程,设置了自动执行的任务,虽然脚本能运行,但是py文件并没有产生日志文件。

解决方法:在程序或脚本中 填写python.exe的绝对地址,我这里填写的是虚拟环境下的python地址

添加参数 : 这里填写脚本wind.py的绝对位置

起始于: 填写的是 日志产生文件的 位置。

由于我的脚本位置和 日志产生的位置是一样的。所以对于文件位置不一样的可能没有参考意义。

下面是运行后的结果:

㈤ python脚本入参的单、双引号

Linux的shell中存在一些特殊字符(保留字),我们将这些具有一些特殊功能的字符叫做meta(元字符),还有一些普通的,没有特殊功能的字符我们叫做literal(文字)。bash中,常使用的引用有如下三种方法:

    1、单引号:单引号中的所有meta均被当作普通字符使用。

    2、双引号:在双引号中的大部分meta都被当作普通字符,但某些字符的功能保留(如$)。

    3、反斜线:只有紧接在反斜线(跳脱字符)之后的单一meta才被当作普通字符。

Windows的cmd下,同样也有类似的概念。单引号和双引号有时候没有区别(可以使用任意一个),有时候只能用特定的一个。

这篇文章主要记录python脚本入参带有&&符号时,在Linux和Windows平台的不同表现。

编写python脚本quote.py,内容如下:

$ cat quote.py

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import sys

print(sys.argv[1])

1、参数不使用引号

$ python quote.py whoami&&whoami

whoami

sunday

可以看出,第一个whoami被当作入参传给脚本,第二个whoami当作bash命令,在终端执行。

2、参数使用单引号

$ python quote.py 'whoami&&whoami'

whoami&&whoami

可以看出,&&被当作普通字符,whoami&&whoami作为参数传给了脚本。

3、参数使用双引号

$ python quote.py "whoami&&whoami"

whoami&&whoami

可以看出,&&被当作普通字符,whoami&&whoami作为参数传给了脚本。

在Windows执行脚本,用户为winsunday:

1、参数不使用引号

C:\test>python quote.py whoami&&whoami

whoami

winsunday

可以看出,第一个whoami被当作入参传给脚本,第二个whoami当作CMD命令,在终端执行。

2、参数使用单引号

C:\test>python quote.py 'whoami&&whoami'

'whoami

'whoami'' 不是内部或外部命令,也不是可运行的程序

或批处理文件。

可以看出,单引号被当作普通字符,&&对命令进行了分割,'whoami作为第一个参数被传给脚本;whoami'被认为是一个命令进行执行(报错了)。

3、参数使用双引号

C:\test>python quote.py "whoami&&whoami"

whoami&&whoami

可以看出,双引号时&&被当作普通字符,whoami&&whoami作为整体被传给脚本。

㈥ 求助,php调用python脚本传递参数的问题

不成功的
python textcasting_stream_py/start_capture_stream.py rtmp://v2.gdtv.cn:1935/live/sport baw GermenVSJapan
成功的
python textcasting_stream_py/start_capture_stream.py rtmp://v2.gdtv.cn:1935/live/sport Kobe GermenVSJapan

㈦ Python语言命令行参数解析接收参数执行脚本的三种方法

在Windows系统上,Python脚本文件当然双击就能直接运行。不过我们往往需要在执行脚本的时候还要添加相应的参数,另外在Ubuntu系统中,我们执行文件往往和其他系统或用户命令一样,需要在终端中输入,参数当然也要一并加上。所以机智客这里说的意思是,执行Python脚本(.py文件)时候需要输入相应参数,这样程序怎么写的方法。

上面这么说可能有点不明不白的,或者有朋友会用但未必知道命令行解析这种表达方式。举个例子,比如我们在执行一个脚本文件的时候,可能会在CMD或者终端中输入python demo.py 10或者python demo.py --separator 10后面这个数字就是参数。我们要编写这样的脚本或者函数,有哪些方法呢?这里列举三种常用的。

一个是用系统模块sys。引入模块语句是import sys。也就是Python语言的内置库中的sys.argv。argv通常有argv[0],argv[1],argv[2]这样几个参数。基本使用方法是m_sil_len = int(sys.argv[1])传入第一个参数,sil_th = int(sys.argv[2])传入第二个参数。如果是简单一点的参数或者脚本,我们引入了sys。可以直接用这个传入参数。

一种是用模块argparse来实现,这是标准库中推荐的命令行解析模块。引入模块语句是import argparse。基本使用方法是引入模块后,先parser = argparse.ArgumentParser()创建对象,然后调用方法添加参数parser.add_argument("jzk", help="这是关于参数的说明", type=int),之后args = parser.parse_args()使用解析就可以用了。机智客看到这个方法在很多项目脚本中使用。我们在阅读机器学习AI之类的开源项目,就会发现很多人用的都是这个方法。

还有一个就是用fire模块,用于生成命令行界面的工具。引入模块语言是import fire。它默认以-为参数分隔符的。基本使用方法是fire.Fire()。这个不仅可以做命令行的参数解析,还可以还给一个类class添加命令行。所以使用时候括号里填入函数名或者类名即可,也就是里面的参数可以是其他Python对象。

㈧ python开发命令行脚本

工作中会经常需要写一些命令行脚本,如果还是用if,else判断用户输入实在是太丑陋了。这里介绍几个python里的命令行脚本库,可以帮助我们快速开发好用的命令行脚本。

https://docs.python.org/3/library/cmd.html

使用方式是继承Cmd,实现自己的子类。

参数comletekey是自动补全操作,默认值是Tab, 如果不为None 且readline可用的话,命令会自动完成。
这里的readline指的是python实现的 GNU readline 接口(标准python库里没有,Windows系统不支持)。

参数stdin,stdout是输入输出流,默认是sys.stdin,sys.stout。

cmd提供了一个简单的框架,但是功能比较简单,python还有其他的很多第三方库可以用来写命令行程序。

https://www.cnblogs.com/xueweihan/p/12293402.html 这篇文章对比了各个库的功能,贴在这里:

看起来fire是最简单的,来试一下。

fire 则是用一种面向广义对象的方式来玩转命令行,这种对象可以是类、函数、字典、列表等,它更加灵活,也更加简单。你都不需要定义参数类型,fire 会根据输入和参数默认值来自动判断,这无疑进一步简化了实现过程。

以下示例为 fire 实现的 计算器程序:

从上述示例可以看出,fire 提供的方式无疑是最简单、并且最 Pythonic 的了。我们只需关注业务逻辑,而命令行参数的定义则和函数参数的定义融为了一体。

不过,有利自然也有弊,比如 nums 并没有说是什么类型,也就意味着输入字符串'abc'也是合法的,这就意味着一个严格的命令行程序必须在自己的业务逻辑中来对期望的类型进行约束。

㈨ python 如何调用带参数的shell脚本

调用带参数的脚本,需要首先设置,举例如下:

test.py按行解释如下:

  1. 脚本中有汉字的话,需要声明文件编码格式;

  2. 导入sys模块,这个模块是用来获取参数列表的;

  3. sys.argv是一个列表,第一个是文件名,之后依次是参数列表;

  4. 打印输出,这一步不需要多讲;

  5. 保存到c:usersYYCDesktop est.py;

调用操作步骤:

  1. 打开命令行;

  2. 输入python 文件名 第一个参数 第二个参数.....(参数之间用空格区分);

  3. 一定要注意参数个数,要以文件名开始。

㈩ python脚本中调用执行另一个带参数python脚本的问题

cmd='/home/menglin/androguard/androaxml.py-i{}|grep"android.permission."'.format(path)
p1=subprocess.Popen(cmd,stdout=subprocess.PIPE,shell=True)

热点内容
存储行业发展趋势 发布:2025-07-15 10:25:22 浏览:240
怎么删除配置提示 发布:2025-07-15 10:21:27 浏览:245
java深入学习 发布:2025-07-15 10:13:50 浏览:534
linux应用程序开发pdf 发布:2025-07-15 10:11:37 浏览:911
解压冷知识 发布:2025-07-15 10:11:35 浏览:78
outlook邮件的服务器是什么 发布:2025-07-15 09:45:59 浏览:482
如何安排资产配置 发布:2025-07-15 09:33:24 浏览:906
更新传送服务器目的地址失败 发布:2025-07-15 09:27:05 浏览:484
c语言else的用法 发布:2025-07-15 09:19:54 浏览:119
tnt苹果核安卓怎么加好友 发布:2025-07-15 09:05:15 浏览:239