当前位置:首页 » 编程软件 » python脚本参数传递

python脚本参数传递

发布时间: 2022-11-02 12:04:05

‘壹’ shell脚本里怎样在调用python时传参数

Python 可以利用 sys.argv 拿到命令列上的 arguments:
$ python test.py 1 2 3

test.py:
import sys

print(sys.argv)

结果:
['test.py', '1', '2', '3']

所以你在 build_using_xctool.sh 中可以这样调度 python:
python /Users/gyd/Desktop/auto_send_email.py subject msg toaddrs fromaddr smtpaddr password

然后在 auto_send_email.py 中:

import sys # 自己 import sys...if __name__ == '__main__':
sendmail(*sys.argv[1:])

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

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

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

‘叁’ 怎样用perl脚本调用python脚本并传递参数

举例:shell的脚本:t.sh内容:echo "this is a test shell with arguments"echo "arg1 = $1; arg2 = $2;"执行脚本./t.sh zhao结果如下:[noncode@gnode108 knockdown_workflow]$ ./t.sh zhao1 zhao2this is a test shell with argumentsarg1 = zhao1; arg2 = zhao2;python脚本:[noncode@gnode108 knockdown_workflow]$ cat t.py #!/usr/bin/env pythonimport osimport sysdef main():print 'Hello world!'if len(sys.argv) < 2 : print "usage:%s config log" %(sys.argv[0]) sys.exit(1)arg0 = sys.argv[0]arg1 = sys.argv[1]print "arg0 = %s; arg1 = %s" % (arg0, arg1) print "test ./t.sh: "os.system('./t.sh ' + arg0 + ' ' + arg1)print "test method of replacing: "t = 't.sh'm = 'zhao'n = 'zhao'cmd = "./%s %s %s" % (t,m,n)print "t = %s; m = %s; n = %s; cmd = %s" % (t,m,n,cmd)os.system(cmd)if __name__ == '__main__':main()运行脚本:python t.py t.sh执行结果:[noncode@gnode108 knockdown_workflow]$ python t.py t.shHello world!arg0 = t.py; arg1 = t.shtest ./t.sh: this is a test shell with argumentsarg1 = t.py; arg2 = t.sh;test method of replacing: t = t.sh; m = zhao; n = zhao; cmd = ./t.sh zhao zhaothis is a test shell with argumentsarg1 = zhao; arg2 = zhao;[noncode@gnode108 knockdown_workflow]$ cat t.sh echo "this is a test shell with arguments"echo "arg1 = $1; arg2 = $2;"[noncode@gnode108 knockdown_workflow]$ ./t.sh zhao1 zhao2this is a test shell with argumentsarg1 = zhao1; arg2 = zhao2;说明:两种方法使用python脚本调用shell脚本:第一种方法:os.system('./t.sh ' + arg0 + ' ' + arg1)注:./t.sh后面有一个空格,不同的第二种方法:t = 't.sh'm = 'zhao'n = 'zhao'cmd = "./%s %s %s" % (t,m,n)print "t = %s; m = %s; n = %s; cmd = %s" % (t,m,n,cmd)os.system(cmd)注:在之前把字符串聚合到一起。

‘肆’ python中的argparse模块怎么参数传递

argparse是用于脚本带参数使用的,假设你有如下脚本名为prog.py,内容如下:

importargparse

parser=argparse.ArgumentParser(description='Processsomeintegers.')
parser.add_argument('integers',metavar='N',type=int,nargs='+',
help='anintegerfortheaccumulator')
parser.add_argument('--sum',dest='accumulate',action='store_const',
const=sum,default=max,
help='sumtheintegers(default:findthemax)')

args=parser.parse_args()
printargs.accumulate(args.integers)

你在控制台终端上输入python prog.py -h即可获得帮助说明

$pythonprog.py-h
usage:prog.py[-h][--sum]N[N...]

Processsomeintegers.

positionalarguments:
Nanintegerfortheaccumulator

optionalarguments:
-h,--
--sumsumtheintegers(default:findthemax)

在再终端带参数输入命令行中,即可求得值

$pythonprog.py1234
4

$pythonprog.py1234--sum
10

‘伍’ vba调用python程序,如何传参数

已有一个Python脚本实现了部分功能,想使用VBA直接调用Python脚本
Python脚本如下:
[python] view plain
import time
def hello(name):
return "Hello, " + name + "!"

print hello("World")
#延时关闭windows控制台,使得用户可以看到运行结果
time.sleep(150);
方法如下:
[python] view plain
<pre name="code" class="vb">Sub test()

Call Shell("C:\Python27\Python.exe C:\Users\Hongxing\Desktop\py2exe\Hello.py", vbNormalFocus)

End Sub

‘陆’ 怎样才能让python 脚本像shell命令一样直接运行并可以接收参数

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

test.py按行解释如下:


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

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

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

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

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


调用操作步骤:

  1. 打开命令行;

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

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

‘柒’ java调用python时传递的参数问题

需要用到需要用到jython.jar
java example:

public static void main(String[] args) {
//定义参数
String[] args2 = {"arg1","arg2"};
//设置参数
PythonInterpreter.initialize(null, null, args2);
PythonInterpreter interpreter = new PythonInterpreter();
//执行
interpreter.execfile("E:\\jython.py");
System.out.println("----------run over!----------");
}
python的程序:
#!/bin/env python
import time
import sys
argCount = len(sys.argv)
print('before sleep')
time.sleep(5);
print('after sleep')
for str in sys.argv:
print(str)

‘捌’ 怎么把文件名以参数的方式传入python脚本

作为一名从小就看篮球的球迷,会经常逛虎扑篮球及湿乎乎等论坛,在论坛里面会存在很多精美图片,包括NBA球队、CBA明星、花边新闻、球鞋美女等等,如果一张张右键另存为的话真是手都点疼了。作为程序员还是写个程序来进行吧!

所以我通过Python+Selenium+正则表达式+urllib2进行海量图片爬取。

运行效果:

http://photo.hupu.com/nba/tag/马刺

http://photo.hupu.com/nba/tag/陈露

源代码:

# -*- coding: utf-8 -*-
"""
Crawling pictures by selenium and urllib
url: 虎扑 马刺 http://photo.hupu.com/nba/tag/%E9%A9%AC%E5%88%BA
url: 虎扑 陈露 http://photo.hupu.com/nba/tag/%E9%99%88%E9%9C%B2
Created on 2015-10-24
@author: Eastmount CSDN
"""

import time
import re
import os
import sys
import urllib
import shutil
import datetime
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import selenium.webdriver.support.ui as ui
from selenium.webdriver.common.action_chains import ActionChains

#Open PhantomJS
driver = webdriver.PhantomJS(executable_path="G:phantomjs-1.9.1-windowsphantomjs.exe")
#driver = webdriver.Firefox()
wait = ui.WebDriverWait(driver,10)

#Download one Picture By urllib
def loadPicture(pic_url, pic_path):
pic_name = os.path.basename(pic_url) #删除路径获取图片名字
pic_name = pic_name.replace('*','') #去除'*' 防止错误 invalid mode ('wb') or filename
urllib.urlretrieve(pic_url, pic_path + pic_name)


#爬取具体的图片及下一张
def getScript(elem_url, path, nums):
try:
#由于链接 http://photo.hupu.com/nba/p29556-1.html
#只需拼接 http://..../p29556-数字.html 省略了自动点击"下一张"操作
count = 1
t = elem_url.find(r'.html')
while (count <= nums):
html_url = elem_url[:t] + '-' + str(count) + '.html'
#print html_url
'''
driver_pic.get(html_url)
elem = driver_pic.find_element_by_xpath("//div[@class='pic_bg']/div/img")
url = elem.get_attribute("src")
'''
#采用正则表达式获取第3个<div></div> 再获取图片URL进行下载
content = urllib.urlopen(html_url).read()
start = content.find(r'<div class="flTab">')
end = content.find(r'<div class="comMark" style>')
content = content[start:end]
div_pat = r'<div.*?>(.*?)</div>'
div_m = re.findall(div_pat, content, re.S|re.M)
#print div_m[2]
link_list = re.findall(r"(?<=href=").+?(?=")|(?<=href=').+?(?=')", div_m[2])
#print link_list
url = link_list[0] #仅仅一条url链接
loadPicture(url, path)
count = count + 1

except Exception,e:
print 'Error:',e
finally:
print 'Download ' + str(count) + ' pictures '


#爬取主页图片集的URL和主题
def getTitle(url):
try:
#爬取URL和标题
count = 0
print 'Function getTitle(key,url)'
driver.get(url)
wait.until(lambda driver: driver.find_element_by_xpath("//div[@class='piclist3']"))
print 'Title: ' + driver.title + ' '

#缩略图片url(此处无用) 图片数量 标题(文件名) 注意顺序
elem_url = driver.find_elements_by_xpath("//a[@class='ku']/img")
elem_num = driver.find_elements_by_xpath("//div[@class='piclist3']/table/tbody/tr/td/dl/dd[1]")
elem_title = driver.find_elements_by_xpath("//div[@class='piclist3']/table/tbody/tr/td/dl/dt/a")
for url in elem_url:
pic_url = url.get_attribute("src")
html_url = elem_title[count].get_attribute("href")
print elem_title[count].text
print html_url
print pic_url
print elem_num[count].text

#创建图片文件夹
path = "E:\Picture_HP\" + elem_title[count].text + "\"
m = re.findall(r'(w*[0-9]+)w*', elem_num[count].text) #<a href="http://www.aspku.com/tech/jiaoben/%3Ca%20href=" tech="" jiaoben="" python="" 270537.html"="" style="background: none; border: none; padding: 0px; margin: 0px; text-decoration: none; font-family: Tahoma, Geneva, sans-serif; color: rgb(59, 89, 152);">python/95398.html">爬虫图片张数
nums = int(m[0])
count = count + 1
if os.path.isfile(path): #Delete file
os.remove(path)
elif os.path.isdir(path): #Delete dir
shutil.rmtree(path, True)
os.makedirs(path) #create the file directory
getScript(html_url, path, nums) #visit pages

except Exception,e:
print 'Error:',e
finally:
print 'Find ' + str(count) + ' pages with key '

#Enter Function
def main():
#Create Folder
basePathDirectory = "E:\Picture_HP"
if not os.path.exists(basePathDirectory):
os.makedirs(basePathDirectory)

#Input the Key for search str=>unicode=>utf-8
key = raw_input("Please input a key: ").decode(sys.stdin.encoding)
print 'The key is : ' + key

#Set URL List Sum:1-2 Pages
print 'Ready to start the Download!!! '
starttime = datetime.datetime.now()
num=1
while num<=1:
#url = 'http://photo.hupu.com/nba/tag/%E9%99%88%E9%9C%B2?p=2&o=1'
url = 'http://photo.hupu.com/nba/tag/%E9%A9%AC%E5%88%BA'
print '第'+str(num)+'页','url:'+url
#Determine whether the title contains key
getTitle(url)
time.sleep(2)
num = num + 1
else:
print 'Download Over!!!'

#get the runtime
endtime = datetime.datetime.now()
print 'The Running time : ',(endtime - starttime).seconds

main()

‘玖’ 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怎么执行bat文件并传递参数给bat文件

使用os模块的system方法可以执行命令,例如执行D盘的cmd.bat批处理脚本并传入参数p1:

importos

os.system(r'D:cmd.batp1')
热点内容
python全局变量文件 发布:2025-05-15 07:35:06 浏览:953
字节和存储字节 发布:2025-05-15 07:32:10 浏览:520
linux应用开发工程师 发布:2025-05-15 07:32:07 浏览:260
sqldcl 发布:2025-05-15 07:29:18 浏览:199
canvas的图像上传 发布:2025-05-15 07:29:17 浏览:102
离线缓存为什么点不动 发布:2025-05-15 07:27:17 浏览:829
钉鼎服务器出口ip 发布:2025-05-15 07:13:08 浏览:279
移动硬盘和光盘哪个存储时间长 发布:2025-05-15 07:04:25 浏览:489
压缩一定 发布:2025-05-15 06:57:30 浏览:289
进栈算法 发布:2025-05-15 06:56:02 浏览:215