当试图打开一个文件进行查看或编辑时,你经常会面临一个错误,如没有这样的文件或目录。所以我们来看看如何解决这个错误。
解决Python中No Such File Or Directory的错误
要解决Python中的No Such File Or Directory错误,确保文件在你提供的路径中存在。要检查目录中的所有文件,使用os.listdir()方法。os.listdir()是一个内置的Python方法,可以列出当前工作目录中的文件。
在Python中,有两种类型的路径:
- 绝对路径
- 相对路径
Python中的绝对路径
一个绝对路径总是包含根元素和定位文件所需的完整目录列表。因此,如果你传递绝对路径,你不会得到No Such File Or Directory错误,因为你提供了该文件的完美的文件路径。
如果该文件不存在,你会得到错误;否则,你不会得到任何错误,因为你没有看错文件夹。
Windows中的绝对路径
C:\Windows\pro.exe
始终使用绝对路径来打开文件:
file = open(r'C:\Users\krunal\index.php')
如果你不在你想打开文件的目录中,在打开文件之前改变当前工作目录:
import os
os.chdir(r'C:\Users\krunal\public_html')
file = open('index.php')
另一个可能导致 "找不到文件"错误的常见错误包括。
不小心在文件路径中使用转义序列
path = 'C:\Users\newton\index.php'
这将产生一个错误。 为了避免犯这个错误,记住要使用原始字符串字面来表示文件路径。
path = r'C:\Users\newton\index.php'
Linux中的绝对路径
/home/users/krunal/www/var/public_html/index.php
Python中的相对路径
一个相对路径需要与另一个路径相结合来访问一个文件。一个相对路径被定义为与当前工作直接相关的路径(cwd)。它从你的当前目录开始,并且从不以/开头,因为它不是根目录。
在编程中不推荐使用相对路径,因为平台不同,有时它不能像预期那样工作。这就是为什么总是传递绝对路径并确保你要处理的文件存在于你的目录中。
Windows中的相对路径
pro.exe
Linux中的相对路径
./public_html/index.php
用os.getcwd()确保你在你认为的目录中(如果你从IDE中启动你的代码,你很可能在一个不同的目录中)。
相对文件路径总是相对于当前工作目录的,而当前工作目录不一定是你的python脚本的位置。
相对路径以点(period)开始,代表当前目录(也叫 "工作目录")。例如,相对路径./public_html/index.php只有在当前目录包含一个名为public_html的路径时才有效,该路径包含一个名为index.php的目录。
这就是解决Python中No Such File Or Directory错误的方法。