我正在尝试从我的 Python 脚本打开文件 recentUpdated.yaml。但是当我尝试使用:open('recentlyUpdated.yaml')时,我收到一条错误消息:IOError: [Errno 2] 没有这样的文件或目录:'
从我的 Python 脚本 recentlyUpdated.yaml
打开该文件
open('recentlyUpdated.yaml')
我收到一条错误消息:
IOError: [Errno 2] No such file or directory: 'recentlyUpdated.yaml'
为什么?我该如何解决这个问题?
路径一词 的 含义与字面意思完全一致。它显示了需要采取的步骤,进入和退出文件夹以查找文件。路径上的每一步要么是文件夹名称,要么是特殊名称 .
(表示当前文件夹),要么是特殊名称 ..
(表示返回/退出父文件夹)。
绝对 和 相对这 两个术语 也有其通常的英语含义。相对路径表示某物 相对于 某个起点的位置;绝对路径是从顶部开始的位置。
以路径分隔符开头的路径,或 以驱动器号后跟路径分隔符的 (如 C:/foo
)都是绝对路径。(在 Windows 上,还有 UNC 路径 ,它们必然是绝对路径。大多数人永远不必担心这些。)
在 Windows 上, C:foo
直接以文件或文件夹名称开头的路径,或者驱动器号后直接跟文件或文件夹名称(如
相对路径是“相对于”所谓的 当前工作目录 (以下简称 CWD)。在命令行中,Linux 和 Mac 在所有驱动器上使用通用 CWD。( 整个文件系统 有一个通用的“根”,并且可能包括多个物理存储设备。)Windows 略有不同:它会记住每个驱动器的最新 CWD,并具有在驱动器之间切换的单独功能,从而恢复那些旧的 CWD 值。
每个进程(包括终端/命令窗口)都有自己的 CWD。当从命令行启动程序时,它将获取终端/命令进程正在使用的 CWD。当从 GUI(通过双击脚本、将某些内容拖到脚本上或将脚本拖到 Python 可执行文件上)或使用 IDE 启动程序时,CWD 可能是任意数量的,具体取决于详细信息。
重要的是,CWD 不一定 脚本所在的位置。
使用 os.getcwd 检查 checked using os.getcwd
,并 modified using os.chdir
。每个 IDE 都有自己的规则来控制初始 CWD;有关详细信息,请查看文档。
要将 CWD 设置为包含当前脚本的文件夹, 请确定该路径 ,然后进行设置:
os.chdir(os.path.dirname(os.path.abspath(__file__)))
p9
p10
p11
p12
p13
p14
第15页
p16