gpt4 book ai didi

python - 'FileNotFoundError : [Errno 2] No such file or directory' but can't use exact, 或绝对路径

转载 作者:太空宇宙 更新时间:2023-11-03 13:59:16 27 4
gpt4 key购买 nike

我正在尝试制作一个基本的文字冒险游戏,如下所示:

import time

print ("Hello and welcome to Prison Break")
print()
print("Press S to start")
while True:
choice = input("> ")

if choice == 'S'or's' :
print("Paddy Games presents...")
time.sleep (2)
print("Prison Break!")
time.sleep(1)
print("Before we begin, lets find out a bit about how you got
stuck in this prison in the first place!")
time.sleep(2.5)
print("When you are finished reading, type finished")
file = open("Prison Break Backstory.txt","r")
file_contents = file.read()
print (file_contents)
print()

问题是当我运行它时我得到了这个:'FileNotFoundError: [Errno 2] 没有这样的文件或目录'我已经检查过我是否正确地写了文件名,它肯定在那里

现在我知道网站上已经有使用精确或绝对路径的解决方案。不过,我将在家里的树莓派 3 和学校计算机上进行此工作。当我分发代码时,该文件不会位于同一个位置。所以总而言之,我需要一个解决方案,使文件可以在所有计算机上定位,无论它在哪里,只要它在那里。

抱歉,如果这是一个愚蠢的问题,我仍在学习 python,尚未完善它。预先感谢您的回复!

最佳答案

您想要相对路径的示例,或者搜索计算机中的每个文件吗?对于后者,请查看 this question ,所以你可以这样做:

for root, dirs, files in os.walk("C:/Users", topdown=False):
for name in files:
if name == "Prison Break Backstory.txt":
file = open(os.path.join(root, name), "r")

但这效率太低了,我真的建议你不要这样做。另外,如果这个文件的两个版本碰巧位于不同的目录中,就会把事情搞砸。

相反,您应该做的是确保您始终知道该文本文件相对于您的 python 代码的位置。假设您的整个项目位于 C:/Users/myname/Desktop/Project 中,您可以将 Python 代码放在 C:/Users/myname/Desktop/Project/src 中>(源代码),以及 C:/Users/myname/Desktop/Project/txtfiles 中的文本文件。每当您将“Project”文件夹发送给某人时,Python 代码都可以访问文本文件,如下所示:

file = open("../txtfiles/Prison Break Backstory.txt","r")

此外,请确保始终在最后关闭文件。改为使用可能会更好

with open("../txtfiles/Prison Break Backstory.txt", "r") as f:
file_contents = f.read()

因此您不必关闭文件/冒着不关闭文件而出现 I/O 问题的风险。

关于python - 'FileNotFoundError : [Errno 2] No such file or directory' but can't use exact, 或绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49370719/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com