python - Windows批处理文件无法从使用的python文件中找到子文件文件
问题描述
我编写了一个批处理文件来启动多个.py
文件,这些文件创建了一个地理数据库 + 要素类(带有域)。使用.py
第二个/子.py
文件和一个.csv
文件来获取他的输入。
我失败了,因为.bat
找不到这个.csv
。我错过了什么?
的当前代码.bat
:
@echo on
"c:\Program Files\ArcGIS\Pro\bin\Python\scripts\propy.bat" "C:\Users\<restofthepath>\mainfile.py"
Pause
文件和地图结构如下:
我在 *.bat 文件中添加了“调用”,尽管脚本中的暂停现在可以正常工作,但我仍然收到以下错误:
Traceback (most recent call last):
File "C:\Users\<restofthepath>\mainfile.py", line 52, in <module> with open(<theCSVfile>) as infile: FileNotFoundError: [Errno 2] No such file or directory: <nameofthecsvfile>.csv'
主脚本中的第 52 行包含以下行:
with open(<theCSVfile>) as infile:
mw_fields = csv.DictReader(infile, delimiter = ';')
我是否需要将此“csv.Dictreader”也添加到我的 .bat 文件中?(也许我误解了.batfile的功能)
我在每个文件夹中都有一个主文件(和子文件)。
解决方案
当您将控制权传递给第二个批处理文件时propy
,控制权将不会返回到原始批处理文件,因为您没有使用call
关键字。
请尝试:
@echo on
call "c:\Program Files\ArcGIS\Pro\bin\Python\scripts\propy.bat" "C:\Users\<restofthepath>\mainfile.py"
Pause
意思是“当另一个文件完成后,call
回来继续执行这个文件”。
推荐阅读
- swift - 在聊天应用程序中集成核心数据时面临的问题
- logging - 将 Python 日志收集到 ECS 中的 DataDog
- hyperledger-fabric - Hyperledger Fabric Composer - 限制系统管理员的访问权限
- powershell - PS脚本获取没有文件的文件夹
- vba - 是否可以获取用户窗体中的帧数和帧中的选项按钮数?
- python - 在 conda 环境中访问 Matlab 运行时
- vba - VBA组合代码循环功能
- android - java.lang.NoClassDefFoundError firebase Firestore android
- c# - 显示数组中的每个值
- laravel - 如何选择合适的控制器来处理 MVC 中的请求?