【问题标题】:python's os.getcwd() randomly stops workingpython os.getcwd() 随机停止工作
【发布时间】:2019-04-04 22:51:28
【问题描述】:

我在我的 ubuntu 16.04 机器上运行一个带有 tensorflow 的 python 2.7 程序。在某些时候(发生这种情况时它会随机变化),程序会因为os.getcwdu() 失败而崩溃。然后我在同一个终端会话中运行 python,尝试运行 import os 后跟 os.getcwd() 并得到相同的错误:

OSError: [Errno 2] No such file or directory

只有在退出 python(再次),上一个目录并重新进入该目录后,我才能运行此命令。

有谁知道是什么导致了这个问题以及如何避免它?非常感谢!

【问题讨论】:

  • 您的程序是否进行任何其他文件/操作系统操作?我怀疑你可能在一个陈旧的文件句柄上调用os.getcwd()
  • 我确实创建了文件和文件夹。我将如何调试这个?请注意,与 stackoverflow.com/questions/6195301/os-getcwd-throws-exception 这个家伙相比,我可以在命令行中执行 ls 并获得与启动程序之前相同的结果。
  • PS:我刚刚意识到我在 tmux 会话中执行所有这些操作的事实可能是相关的!

标签: python ubuntu getcwd


【解决方案1】:

如果您收到OSError[errno 2] 对应的 os.getcwd() ,则当前工作目录已被删除。可能有其他进程创建了同名的新目录。这就是为什么您可以将目录更改回您的文件夹。

【讨论】:

  • 感谢您的回复!但是,我无法想象这个目录会在任何时候被删除。此外,该目录中有多个文件(运行脚本),它们在中断后仍然存在。因此,任何删除然后重新创建目录的过程都必须将文件放回原处。也许有些东西是来回移动而不是删除?例如,是否有任何内部 Ubuntu 进程可以解释这种行为?
  • 移动不会导致 OSError [errno 2]
猜你喜欢
  • 1970-01-01
  • 2014-04-11
  • 2014-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-14
  • 2023-03-18
相关资源
最近更新 更多