2012-04-12 120 views
0

我得到了一個Python腳本(test1.py)我需要使用bat文件(render.bat)運行。從.BAT文件運行Python腳本,以.BAT文件名作爲輸入

問題1:

首先,我在test1.py有一個定義,它始終運行失敗,什麼都沒有發生。有人可以解釋爲什麼嗎?

import os 
def test01 : 
    os.system('explorer') 

,並在批處理文件:

python c:/test01.py 

,但只要我刪除了它的工作的DEF。我只想了解爲什麼發生這種情況。

問題2:

我如何可以採取「渲染」從render.bat字符串作爲我的python腳本的字符串輸入,這樣我可以運行類似:

import os 
def test1(input) : 
    os.system("explorer " + input) 

所以「輸入」取自.BAT文件名?

回答

0
  1. 函數實際上並沒有做任何事情,除非你給他們打電話。嘗試在腳本的末尾放置test01()

  2. %0會給你的批處理文件的名字叫,包括.bat。在Python中剝離它可能比在批處理文件中更容易。

+0

非常感謝您的回答。 1號完美運作。對於第二個問題,我應該用什麼命令來捕獲%0?再次感謝 – cloud68 2012-04-13 00:47:30

+0

我將它作爲參數傳遞,通過'sys.argv'捕獲。 – 2012-04-13 02:56:47

+0

非常感謝您的幫助 – cloud68 2012-04-13 03:35:11

0

問題1:在python關鍵字def定義了一個函數。但是,要使用你必須明確地調用它的函數,即

import os 
def test01(): # do not forget() 
    os.system('explorer') 

test01() # call the function 
0

1)你有實際call的功能來實現你的任務。

2)%0指的是正在運行的腳本。爲此創建test.bat file

@ echo off 
echo %0 

輸出= test.bat

可以剝離從輸出的.bat擴展。

+0

非常感謝您的回答。 1號完美運作。對於第二個問題,我應該用什麼命令來捕獲%0?再次感謝 – cloud68 2012-04-13 00:48:39

+0

@ user1328167:您應該使用'sys.argv'。 – RanRag 2012-04-13 03:11:01

+0

非常感謝您的幫助 – cloud68 2012-04-13 03:35:24