You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

传入字符串路径时os.walk()无输出,用os.getcwd()正常的问题

os.walk传入手动路径无输出的原因及解决办法

你手动指定的路径/Users/shiva/AppData/Local/Programs/Python/Python39存在明显错误——/Users是macOS系统的用户目录结构,而AppData是Windows系统特有的用户数据目录,两者不可能同时出现在一个有效路径里,这直接导致os.walk找不到目标目录,自然没有输出。而os.getcwd()获取的是当前脚本所在的有效目录,所以能正常遍历。

解决步骤:

  • 确认系统类型:如果是macOS,Python39的默认安装路径一般是/Library/Frameworks/Python.framework/Versions/39或者/Users/shiva/Library/Python/3.9;如果是Windows,路径应该是类似C:\Users\shiva\AppData\Local\Programs\Python\Python39的格式。
  • 验证路径有效性:先通过os.path.exists()检查路径是否存在,返回True才是有效路径,示例代码:
import os
dir_path = '/Users/shiva/AppData/Local/Programs/Python/Python39'
print(os.path.exists(dir_path))  # 输出False说明路径不存在
  • 使用正确路径替换:根据你的实际系统修改路径后再传入os.walk,比如Windows下可以这样写:
import os
# 转义反斜杠或者用原始字符串
dir_path = r'C:\Users\shiva\AppData\Local\Programs\Python\Python39'
for dirpath, dirnames, filenames in os.walk(dir_path):
    print(f'dirpath={dirpath}\ndirnames={dirnames}\nfilenames={filenames}')
  • 检查权限:如果路径存在但仍无输出,可能是当前用户没有该目录的读取权限,尝试以管理员身份运行脚本,或者调整目录的读取权限。

内容的提问来源于stack exchange,提问作者GENIUS NETWORK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 18:31:08