[解决]Python filenotfounderror -快速指南

891 阅读5分钟

在这篇文章中,我们将讨论Python中一个非常常见的错误 -filenotfounderror。如果你以前使用过Python,你也会遇到这种情况,你写了所有的代码,在其中保持适当的缩进,放上注释行,仔细检查错误的类型,在确保所有的东西都是正确的,在它的位置上,你运行代码,最后在编译器行得到'filenotfounderror'。

很令人沮丧,不是吗?不要担心,我们将确保涵盖所有可能的方法来解决这个问题,使你不再遇到这个问题。

什么是filenotfounderror

这是一个系统消息,当你试图执行一个需要文件的命令时,编译器会抛出这个消息,但系统无法找到。这可能是由于各种原因,如:指定了错误的文件路径,文件存在于另一个目录中,或扩展名错误。我们将在本文中讨论这些问题。但首先让我们在系统中重现这个问题。

我们将编写一个程序,将一个.csv文件加载到一个pandas数据框中,然后打印这个数据框。

import pandas as pd

df=pd.read_csv("nifty 2020 crash")
print(df)


如何修复Python filenotfounderror?

当你在终端运行你的Python代码时,它会从终端运行的根目录中搜索文件。人们常见的一个误解是,当你运行python代码读取一个文件时,终端会在整个计算机中搜索该文件,这是不正确的。

你的程序所需要的所有文件都应该存在于终端启动的根目录中。

这个问题可以通过两种方法解决。

方法1:指定完整的文件路径

当我们运行我们的程序时,我们在程序中说明文件名。编译器在根目录中搜索它并抛出错误。解决这个问题的方法是在代码中指定整个文件路径。

import pandas as pd

df = pd.read_csv(r"C:\Users\Win 10\Desktop\python_errorsolving\nifty 2020 crash.csv")
print(df)

注意:观察一下,在指定文件路径时,我们在写路径之前加了一个r,pd.read_csv(r"C:\.......) 。它是用来将简单的字符串转换为原始字符串的。如果我们在指定文件路径之前不加r,系统就会把这行代码当作普通的字符串输入,而不是文件路径。

方法2:使用一个.txt文件来运行Python脚本

在这个方法中,我们使用一个非常简单但有效的方法来解决这个问题。我们把代码写在一个.txt文件中,并把它存放在我们需要的文件所在的目录中。当我们用python运行这个.txt文件时,编译器只在该目录下搜索该文件。这种方法不需要我们指定整个文件路径,但我们需要确保终端已经从正确的目录中运行。

为了说明这个例子,我们在桌面上创建了一个目录,名为 "python_errorsolving"。这个目录包含两个文件,即包含python代码的.txt文件和我们的代码需要的.csv文件。

要从终端运行这个文件,请使用cd 手动进入该目录,然后使用语法python error_crt.txt 或任何你的文件名来运行这个文件。

正如你所看到的,这种方法不需要我们指定整个文件路径。当你需要处理多个文件时,这种方法很有用,因为为每个特定的文件指定整个路径可能是一项乏味的工作。

方法3:解决filenotfounderror的方法

这不是一个解决方案,而是这个问题的一个变通方法。假设你处于某种情况下,文件路径是相同的,但你必须连续加载不同的文件。在这种情况下,你可以将你的文件名和文件路径存储在两个不同的变量中,然后在第三个变量中串联它们。这样,你就可以对多个不同的文件进行组合,然后轻松地加载它们。

为了说明这个解决方案,我们将创建一个.txt文件,并附上代码。

import pandas as pd

filename = "nifty 2020 crash.csv"
filepath = "C:\\Users\\Win 10\\Desktop\\python_errorsolving\\"
file = filepath+filename

df = pd.read_csv(file)
print(df)


使用集成开发环境修复filenotfounder错误

集成开发环境或IDE是管理我们的文件和环境变量的一个好方法。这有助于为你的代码创建虚拟环境,使所需的库和环境变量不与我们的其他项目发生交互。在本节中,我们将在PyCharm IDE中创建一个项目,并看看我们如何轻松地存储和交互我们的文件。

为了演示这个例子,我们创建了一个包含学校记录的.csv文件,它被命名为'book1.csv'。要在PyCharm中导入它,请遵循以下步骤。

第1步: 进入文件>新项目...>给出一个文件名>创建。

第2步: 复制你的.csv文件并将其粘贴到该项目中。

一旦你粘贴了该文件,你可以直接用你的代码访问该文件,而不必指定整个路径。你可以简单地用文件名工作。

import pandas as pd

df = pd.read_csv('Book1.csv', sep='|')
print(df)

结论

在这篇文章中,我们观察了系统无法定位你的文件的不同情况。我们还研究了解决这些问题的不同方法,从手动指定路径,到使用IDE以获得更好的结果。我希望这篇文章能解决你的问题