从.BAT文件运行Python脚本,以.BAT文件名作为输入

从.BAT文件运行Python脚本,以.BAT文件名作为输入

问题描述:

我得到了一个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文件名?

  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

问题1:在python关键字def定义了一个函数。但是,要使用你必须明确地调用它的函数,即

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

test01() # call the function 

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