排查思路

  • 确认文件路径是否正确

    • 检查路径字符串是否准确无误,包括所有的目录名和文件名。注意路径的大小写和特殊字符。
    • 验证路径中的分隔符是否适用于你的操作系统(例如,在Windows上使用\,在Linux或Mac上使用/)。
  • 使用绝对路径

    • 尝试使用文件的绝对路径而非相对路径。这可以避免当前工作目录不是你预期的目录时发生的问题。
  • 检查当前工作目录

    • 使用os.getcwd()查看当前工作目录,确保你的程序在从正确的位置寻找文件。
    • 如果需要改变工作目录,可以使用os.chdir(path)
  • 检查文件权限

    • 确保你的Python脚本有权限访问目标文件。这包括读取权限和/或写入权限,取决于你的需求。
  • 使用路径操作函数

    • 使用os.path.exists(path)来检查路径是否存在。
    • 使用os.path.isfile(path)来确认路径是否指向一个文件。
    • 使用os.path.isdir(path)来确认路径是否指向一个目录。
  • 处理路径分隔符

    • 使用os.path.join()来构建路径,这样可以确保路径分隔符适用于当前操作系统。
  • 打印和检查路径字符串

    • 在尝试打开文件之前,打印出你的路径字符串。这有助于确认路径是否如你所预期。
  • 环境问题

    • 如果你在一个虚拟环境中工作,确保你的环境已经被激活,且所有依赖都已正确安装。

一个坑

python 项目的当前路径取决于启动脚本的路径,一个简单的测试:

1. 首先在~/路径下创建test_cur_path.py文件

2. 分别在不同路径下启动脚本,如下所示

3. 在启动.sh脚本时,也要注意这个问题。取决于启动的路径。测试如下:

在~/下新建test.sh,内容如下

在~/执行

sh test.sh

输出如下:

现在在另外的路径下执行sh test.sh 报错,是因为test.sh 的内容是

python test_cur_path.py

因此,意思是在哪个路径下执行脚本,脚本里的代码也是认为当前路径为sh所在路径。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐