當前位置:首頁 » 編程軟體 » 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')
熱點內容
釘鼎伺服器出口ip 發布:2025-05-15 07:13:08 瀏覽:278
移動硬碟和光碟哪個存儲時間長 發布:2025-05-15 07:04:25 瀏覽:488
壓縮一定 發布:2025-05-15 06:57:30 瀏覽:289
進棧演算法 發布:2025-05-15 06:56:02 瀏覽:215
安卓和緩存 發布:2025-05-15 06:56:02 瀏覽:428
筆記本電腦台式伺服器 發布:2025-05-15 06:40:41 瀏覽:109
4k無壓縮 發布:2025-05-15 06:02:54 瀏覽:75
hp存儲6350 發布:2025-05-15 05:40:41 瀏覽:233
怎麼更改電腦默認緩存位置 發布:2025-05-15 05:39:01 瀏覽:877
安卓qq公孫離在哪個戰區戰力最低 發布:2025-05-15 05:38:58 瀏覽:494