修复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
。这可能由于以下几个原因而发生:
- 文件被错误删除了。用户可能无意中删除了文件,或者用户或其他程序可能删除了文件。
- 文件已重命名为其他名称。
- 文件已移动到另一个目录。文件已移动到另一个驱动器,因为错误因系统而异;原因可能不同。
- 该文件路径在写入命令中可能是错误的。
如何在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
的不同解决方案。
更改斜线的顺序
如果斜线使用不当,可能会看到错误。要尝试修复它,请将正斜杠/
转换为反斜杠\
,反之亦然,并检查是否修复了错误。
设置环境
- 首先,激活你的环境。在您的设备上,打开
Anaconda Prompt
并在那里激活您的环境。 - 然后,您可以输入以下命令。
python –m ipykernel install –user
- 现在,启动你的Jupyter notebook并运行代码来检查它是否工作。
更改环境变量
要更改环境变量,请执行以下步骤。
- 在PC搜索栏中搜索
Edit the System Environment Variables
,然后从搜索结果中选择它。 - 在
System Properties
中,选择Advanced
,然后选择底部的Environment Variables
。 - 然后显示所有属性。选择要更改的属性,然后单击
Edit
。 - 如果属性是目录或文件的列表,则选择
New
按钮并在新系统变量窗口中添加变量的名称和值。 - 之后,选择
OK
以应用更改。
重新配置Python中的 argv
路径
一些用户报告说,这个解决方案在他们的情况下也被证明是有效的。
您可以通过重新配置argv
Python路径来解决这种类型的错误。以下是解决此问题的步骤FileNotFoundError
。
- 首先,打开您的设备,并按照下面的路径。
/python/share/jupyter/kernels/
- 然后,打开你的
kernel.json
并按以下方式设置argv
Python路径。"argv": [ "C:\Anaconda3\python.exe", "-m", "ipykernel_launcher", "-f", "{connection_file}" ], "display_name": "Python 3", "language": "python"
- 最后,通过启动Jupyter notebook检查错误是否得到解决。现在运行代码并检查输出。
使用命令行界面运行Python
- 如果未在系统路径中设置代码,也可能发生此错误。要使用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,应该会看到上面的消息。
- 但如果您收到以下消息,则意味着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
。
以管理员身份运行脚本
- 要为
python.exe
创建快捷方式,请右键单击文件并从下拉菜单中选择Create a Shortcut
。 - 右键单击新创建的快捷方式,然后从下拉菜单中选择
Properties
。 - 在新的弹出窗口中,将
Target
字段更改为如下所示。C:\...\...\python.exe yourscript.py
- 在
Shortcut
选项卡中,单击Advanced
并选中Run as administrator
的复选框。 - 应用更改并单击
OK
保存它们。
禁用防病毒
如果您仍然无法解决此错误,您可能需要检查Windows是否阻止访问您尝试使用的文件夹。要执行此操作,请执行以下步骤。
- 在
Start
菜单附近的搜索栏中,搜索Windows Security
并从结果列表中选择它。 - 在
Virus and Threat Protection
弹出窗口中选择Windows Security
。 - 选择
Virus and Threat Protection
设置。 - 使用滑动按钮关闭实时保护。
- 检查错误是否解决。
结论
当您收到FileNotFoundError: [WinError 2] The system cannot find the file specified
错误消息时,这意味着Windows资源管理器在尝试访问该文件时遇到了问题。
此错误可能是由文件系统的几个不同问题引起的,因此您应该在更换任何硬件之前尝试排除问题。本文列出了此错误的所有可能解决方案。