为什么我会收到 FileNotFoundError?[重复]

2025-02-08 08:46:00
admin
原创
59
摘要:问题描述:我正在尝试编写一个简单的程序来读取文件并搜索单词,然后打印该单词在文件中出现的次数。每次我输入“test.rtf”(这是我的文档的名称)时,都会出现此错误:Traceback (most recent call last): File "/Users/AshleyStallings/D...

问题描述:

我正在尝试编写一个简单的程序来读取文件并搜索单词,然后打印该单词在文件中出现的次数。每次我输入“test.rtf”(这是我的文档的名称)时,都会出现此错误:

Traceback (most recent call last):
  File "/Users/AshleyStallings/Documents/School Work/Computer Programming/Side Projects/How many? (Python).py", line 9, in <module>
    fileScan= open(fileName, 'r')  #Opens file
FileNotFoundError: [Errno 2] No such file or directory: 'test.rtf'

我记得上学期上课时,教授说过必须将文件保存在特定位置?我不确定他是否真的这么说过,但如果有帮助的话,我正在运行 Apple OSx。

这是我的代码的重要部分:

fileName= input("Please enter the name of the file you'd like to use.")
fileScan= open(fileName, 'r')  #Opens file

解决方案 1:

如果用户没有传递文件的完整路径(在 Unix 类型的系统中,这意味着以斜杠开头的路径),则该路径将相对于当前工作目录进行解释。当前工作目录通常是您启动程序的目录。对于您来说,文件test.rtf必须位于您执行程序的同一目录中。

您显然是在 Mac OS 下使用 Python 执行编程任务。在那里,我建议在终端(在命令行上)中工作,即启动终端,cd进入输入文件所在的目录,然后使用命令启动 Python 脚本

$ python script.py

为了实现这一点,包含 Python 可执行文件的目录必须位于 PATH 中,PATH 是一个所谓的环境变量,其中包含输入命令时自动用于搜索可执行文件的目录。您应该利用这一点,因为它大大简化了日常工作。这样,您就可以简单地cd转到包含 Python 脚本文件的目录并运行它。

无论如何,如果您的 Python 脚本文件和数据输入文件不在同一个目录中,您始终必须在它们之间指定相对路径,或者必须对其中一个使用绝对路径。

解决方案 2:

如上所述,问题在于指定文件路径。OS X 中的默认路径是您的主目录(/Users/macbook 在终端中用 ~ 表示...您可以使用“系统偏好设置”>“用户和组”中的高级选项更改或重命名主目录)。

或者您可以在文件名中指定从驱动器到文件的路径:

path = "/Users/macbook/Documents/MyPython/"
myFile = path + fileName

您还可以捕获文件未找到错误并使用 try 给出另一个响应:

try:
    with open(filename) as f:
        sequences = pick_lines(f)
except FileNotFoundError:
    print("File not found. Check the path variable and filename")
    exit()

解决方案 3:

一个好的开始是验证输入。换句话说,你可以确保用户确实为真实存在的文件输入了正确的路径,如下所示:

import os
fileName = input("Please enter the name of the file you'd like to use.")
while not os.path.isfile(fileName):
    fileName = input("Whoops! No such file! Please enter the name of the file you'd like to use.")

这是借助内置模块os实现的,它是标准 Python 库的一部分。

解决方案 4:

是否test.rtf位于您运行此程序时所在的同一目录中?

如果没有,您需要提供该文件的完整路径。

假设它位于

/Users/AshleyStallings/Documents/School Work/Computer Programming/Side Projects/data

在这种情况下,你可以输入

data/test.rtf

作为文件名

或者可能是

/Users/AshleyStallings/Documents/School Work/Computer Programming/some_other_folder

在这种情况下,你可以输入

../some_other_folder/test.rtf

解决方案 5:

您可能需要通过以下方式更改路径:

import os
path=os.chdir(str('Here_should_be_the_path_to_your_file')) #This command changes directory

至少对我来说这是有效的!希望它对你也有用!

解决方案 6:

很难在评论中给出代码示例。

要读取文件中的单词,您可以读取文件的内容,这将获得一个字符串 - 这是您之前使用 read() 方法所做的 - 然后使用 split() 获取单个单词。Split 会根据提供的分隔符(默认情况下为空格)拆分字符串。例如,

"the quick brown fox".split()

生产

['the', 'quick', 'brown', 'fox']

相似地,

fileScan.read().split()

将返回一个字符串数组。希望对您有所帮助!

解决方案 7:

首先检查你的文件格式是什么(例如:.txt,.json,.csv等),

如果您的文件存在于 PWD 中,则只需提供文件的名称以及单引号('')或双引号(“”)内的文件格式以及根据您的要求提供的适当的操作模式

例如:

with open('test.txt','r') as f: data=f.readlines() for i in data: print(i)
如果您的文件存在于其他目录中,则只需提供文件所在的完整路径名和文件名以及单引号('')或双引号(“”)内的文件格式以及根据您的要求的适当的操作模式。

如果显示 unicode 错误,只需在文件路径的引号前放置 r,或者将 '' 替换为 '/'

with open(r'C:UserssomanDesktop est.txt','r') as f: data=f.readlines() for i in data: print(i)

解决方案 8:

我犯的错误是我的代码:

x = open('python.txt')

print(x)

但问题出在文件目录中,我将其保存为 python.txt 而不是 python。

所以我的文件路径是 ->C:\Users\noob\Desktop\Python\Course 2\python.txt.txt

这就是它出现错误的原因。

将文件命名为不带.txt 的文件名,它将运行。

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用