修复Python中的FileNotFoundError: [WinError 2] the System Cannot Find the File Specified

如果你在Python程序中面对FileNotFoundError,Python编译器无法定位你试图打开的文件。

可能有几种原因,例如文件不存在,文件与Python程序运行的目录不同,或者文件的名称与预期的不同。

在Python中什么是 FileNotFoundError: [WinError 2] The system cannot find the file specified 

FileNotFoundError是当找不到文件时发生的错误。这可能是由于许多原因,如文件被删除,移动或重命名。

如果文件一开始就不存在,也会发生这种情况。

处理此错误可能非常令人沮丧,因为很难确定为什么找不到文件。但是,可以检查一些事情来尝试解决问题。

首先,检查文件的位置。如果已移动,请尝试在其他文件夹中搜索。

如果已重命名,请尝试使用其他名称。最后,如果文件不存在,请尝试创建它。

如果您仍然无法找到或修复文件,最好联系专业人员。

为什么Python中出现错误FileNotFoundError: [WinError 2] The system cannot find the file specified 

当您想要访问的文件丢失时,会出现FileNotFoundError。这可能由于以下几个原因而发生:

  1. 文件被错误删除了。用户可能无意中删除了文件,或者用户或其他程序可能删除了文件。
  2. 文件已重命名为其他名称。
  3. 文件已移动到另一个目录。文件已移动到另一个驱动器,因为错误因系统而异;原因可能不同。
  4. 该文件路径在写入命令中可能是错误的。

如何在Python中修复 FileNotFoundError: [WinError 2] The system cannot find the file specified 

这是人们在使用计算机时遇到的常见错误。当一个程序试图访问一个它找不到的文件或文件夹时,就会发生这种情况。

错误消息可能会令人困惑,并且有许多原因导致系统无法找到指定的文件。

要修复FileNotFoundError,您需要弄清楚为什么Python无法定位该文件。一旦知道原因,就可以采取措施来修复它,例如确保文件存在,确保它在正确的目录中,或者在Python程序中更改文件的名称。

代码示例:

import subprocess
import os
input = os.path.normcase(r'C:/Users/Vishnu/Desktop/Fortran_Program_Rum/*.txt')
output = os.path.normcase(r'~/C:/Users/Vishnu/Desktop/Fortran_Program_Rum/Output/')
f = open("output", "w")
for i in input:
    exe = os.path.normcase(r'~/C:/Program Files (x86)/Silverfrost/ftn95.exe')
    fortran_script = os.path.normcase(r'~/C:/Users/Vishnu/Desktop/test_fn/test_f2py.f95')
    i = os.path.normcase(i)
    subprocess.Popen([exe, fortran_script, "--domain", i])
    f.write(i)

输出:

FileNotFoundError: [WinError 2] The system cannot find the file specified

下面是Python的FileNotFoundError: [WinError 2] The system cannot find the file specified的不同解决方案。

更改斜线的顺序

如果斜线使用不当,可能会看到错误。要尝试修复它,请将正斜杠/转换为反斜杠\,反之亦然,并检查是否修复了错误。

设置环境

  1. 首先,激活你的环境。在您的设备上,打开Anaconda Prompt并在那里激活您的环境。
  2. 然后,您可以输入以下命令。
    python –m ipykernel install –user
    
  3. 现在,启动你的Jupyter notebook并运行代码来检查它是否工作。

更改环境变量

要更改环境变量,请执行以下步骤。

  1. 在PC搜索栏中搜索Edit the System Environment Variables,然后从搜索结果中选择它。
  2. System Properties中,选择Advanced,然后选择底部的Environment Variables
  3. 然后显示所有属性。选择要更改的属性,然后单击Edit
  4. 如果属性是目录或文件的列表,则选择New按钮并在新系统变量窗口中添加变量的名称和值。
  5. 之后,选择OK以应用更改。

重新配置Python中的 argv 路径

一些用户报告说,这个解决方案在他们的情况下也被证明是有效的。

您可以通过重新配置argvPython路径来解决这种类型的错误。以下是解决此问题的步骤FileNotFoundError

  1. 首先,打开您的设备,并按照下面的路径。
    /python/share/jupyter/kernels/
    
  2. 然后,打开你的kernel.json并按以下方式设置argv Python路径。
    "argv": [
    "C:\Anaconda3\python.exe",
    "-m",
    "ipykernel_launcher",
    "-f",
    "{connection_file}"
    ],
    "display_name": "Python 3",
    "language": "python"
    
  1. 最后,通过启动Jupyter notebook检查错误是否得到解决。现在运行代码并检查输出。

使用命令行界面运行Python

  1. 如果未在系统路径中设置代码,也可能发生此错误。要使用Sublime,请输入以下命令来运行Python。
    C:\Users\Admin>python
    Python 3.10.2 (tags/v3.10.2:a58ebcc, Jan 17 2022, 14:12:15) [MSC v.1929 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    

    执行命令后,如果您尝试运行Python,应该会看到上面的消息。

  2. 但如果您收到以下消息,则意味着Windows无法运行该程序,因为它不知道该程序位于何处。
    C:\Users\Admin>python
    'python' is not recognized as an internal or external command,
    operable program or batch file.
    

将外壳重新配置为 True 争论

如果您忘记在shell=True模块的subprocess方法中指定run参数,则可能会出现此错误。要修复它,请将shell=True参数添加到subprocess模块的run方法,或将shell=False更改为shell=True

以管理员身份运行脚本

  1. 要为python.exe创建快捷方式,请右键单击文件并从下拉菜单中选择Create a Shortcut
  2. 右键单击新创建的快捷方式,然后从下拉菜单中选择Properties
  3. 在新的弹出窗口中,将Target字段更改为如下所示。
    C:\...\...\python.exe yourscript.py
    
  4. Shortcut选项卡中,单击Advanced并选中Run as administrator的复选框。
  5. 应用更改并单击OK保存它们。

禁用防病毒

如果您仍然无法解决此错误,您可能需要检查Windows是否阻止访问您尝试使用的文件夹。要执行此操作,请执行以下步骤。

  1. Start菜单附近的搜索栏中,搜索Windows Security并从结果列表中选择它。
  2. Virus and Threat Protection弹出窗口中选择Windows Security
  3. 选择Virus and Threat Protection设置。
  4. 使用滑动按钮关闭实时保护。
  5. 检查错误是否解决。

结论

当您收到FileNotFoundError: [WinError 2] The system cannot find the file specified错误消息时,这意味着Windows资源管理器在尝试访问该文件时遇到了问题。

此错误可能是由文件系统的几个不同问题引起的,因此您应该在更换任何硬件之前尝试排除问题。本文列出了此错误的所有可能解决方案。