从 .py 脚本调用变量到 Batch
Call variables from .py script into Batch
我有一系列 .py 文件,我正在使用 .bat 来自动执行整个过程。在一些 .py 文件中,我调用了另一个 .py 文件中的变量。我这样做是为了让自己在 运行 新进程时只更改一个 .py。我通常使用 .py 文件将 .bat 设置为 运行,但我不明白如何合并 variables.py 文件。
示例:
Python1.py
import os
import somefolder.variables as variables
path = 'C:/pictures/'
file = variables.file
for img in os.listdir(path + variables.file):
print(img)
Variables.py
file = item1.img
Batch.bat
call "C:/Users/name/anaconda3/Scripts/activate.bat" "C:/Users/name/anaconda3/envs/environment"
call "C:/Users/name/anaconda3/envs/environment/python.exe" "D:/Scripts/python1.py"
...
在 运行ning 之后类似的东西。我收到错误:No module named 'somefolder'
。我已经阅读了一些关于使用 echo
命令或使用 set
的其他帖子,但它似乎是在批处理中设置一个变量而不是从另一个 .py 文件调用它。我是批处理文件的新手,所以任何帮助将不胜感激。
将文件内容读入变量:
for /f "delims=" %%x in (version.txt) do set Build=%%x
或
set /p Build=<version.txt
两者的行为相同,文件中只有一行,对于更多行,for 变体会将最后一行放入变量中,而 set /p 将使用第一行。
使用变量——就像任何其他环境变量一样——毕竟它是一个:
%Build%
所以要检查是否存在:
if exist \fileserver\myapp\releasedocs\%Build%.doc ...
尽管很可能那里不允许使用 UNC 路径。现在无法对此进行测试,但请记住这一点。
正如@Rashid 'Lee' Ibrahim 在上面的评论中提到的那样,最好考虑使用 __intit__.py
。虽然为了获取代码 运行,我将 module/.py 文件所在的位置设置为系统路径。
Python1.py 原创
import os
import somefolder.variables as variables
path = 'C:/pictures/'
file = variables.file
for img in os.listdir(path + variables.file):
print(img)
Python1.py 已编辑
import os
sys.path.append('D:/Scripts/')
import variables
path = 'C:/pictures/'
file = variables.file
for img in os.listdir(path + variables.file):
print(img)
我有一系列 .py 文件,我正在使用 .bat 来自动执行整个过程。在一些 .py 文件中,我调用了另一个 .py 文件中的变量。我这样做是为了让自己在 运行 新进程时只更改一个 .py。我通常使用 .py 文件将 .bat 设置为 运行,但我不明白如何合并 variables.py 文件。
示例:
Python1.py
import os
import somefolder.variables as variables
path = 'C:/pictures/'
file = variables.file
for img in os.listdir(path + variables.file):
print(img)
Variables.py
file = item1.img
Batch.bat
call "C:/Users/name/anaconda3/Scripts/activate.bat" "C:/Users/name/anaconda3/envs/environment"
call "C:/Users/name/anaconda3/envs/environment/python.exe" "D:/Scripts/python1.py"
...
在 运行ning 之后类似的东西。我收到错误:No module named 'somefolder'
。我已经阅读了一些关于使用 echo
命令或使用 set
的其他帖子,但它似乎是在批处理中设置一个变量而不是从另一个 .py 文件调用它。我是批处理文件的新手,所以任何帮助将不胜感激。
将文件内容读入变量:
for /f "delims=" %%x in (version.txt) do set Build=%%x
或
set /p Build=<version.txt
两者的行为相同,文件中只有一行,对于更多行,for 变体会将最后一行放入变量中,而 set /p 将使用第一行。
使用变量——就像任何其他环境变量一样——毕竟它是一个:
%Build%
所以要检查是否存在:
if exist \fileserver\myapp\releasedocs\%Build%.doc ...
尽管很可能那里不允许使用 UNC 路径。现在无法对此进行测试,但请记住这一点。
正如@Rashid 'Lee' Ibrahim 在上面的评论中提到的那样,最好考虑使用 __intit__.py
。虽然为了获取代码 运行,我将 module/.py 文件所在的位置设置为系统路径。
Python1.py 原创
import os
import somefolder.variables as variables
path = 'C:/pictures/'
file = variables.file
for img in os.listdir(path + variables.file):
print(img)
Python1.py 已编辑
import os
sys.path.append('D:/Scripts/')
import variables
path = 'C:/pictures/'
file = variables.file
for img in os.listdir(path + variables.file):
print(img)