批处理文件运行时Python找不到文件夹

Posted

技术标签:

【中文标题】批处理文件运行时Python找不到文件夹【英文标题】:Python can't find a folder when running by a batch file 【发布时间】:2021-10-15 00:00:18 【问题描述】:

我无法通过批处理文件运行 Python 脚本。 我的程序功能之一是访问其中包含一些文件的文件夹 并得到他们的名字。对于这个任务,我使用 .walk() 来自操作系统库。当我在命令提示符下手动运行我的程序时 它工作得很好,并为我返回了一个包含文件的列表。 但是当我通过批处理文件运行时,它们会向我返回一个空列表。 你们能帮帮我吗?请问?

批处理文件:

@ECHO ON
"C:\Users\Anaconda3\python.exe" "C:\Users\my_program\__main__.py"
ECHO Done.
PAUSE
enter code here

Python 程序:

'''Works fine when I start the program manually in the command prompt. But running 
by a batch file is returning for me a empty list.  '''

input_path = getcwd() + "\\input"
list_files = [x[2] for x in os.walk(input_path)]
print(">>> Test Batch: ", input_path) #  it's printing the path of the folder correctly
print(">>> Test Batch2: ", list_files) #  it's printing a empty list

【问题讨论】:

批处理文件在哪里?在您的批处理文件中添加echo %cd% 以获取打印批处理文件的当前目录 【参考方案1】:

我相信在这种情况下 getcwd 将返回您启动批处理文件的目录,而不是批处理文件的目录或 python 文件的目录。我的建议是打印 input_path 的值,问题就会变得清晰。

【讨论】:

以上是关于批处理文件运行时Python找不到文件夹的主要内容,如果未能解决你的问题,请参考以下文章

bat文件找不到

用管理员权限运行批处理提示找不到文件

无法从 WSL bash 中的批处理文件运行 Homebrew 应用程序(找不到命令)

使用批处理文件启动程序时,显示“找不到'example.exe'”

为啥在 FreeCommander 中双击启动批处理文件时 CMD 找不到 wsl 命令?

找不到词法或预处理器问题“ParseFacebookUtils/PFFacebookUtils.h”文件