我试图制作一个基本的文字冒险游戏,如下所示:
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并且还没有完善它。 提前感谢您的任何回复!
答案 0 :(得分:0)
您想要一个相对路径的示例,还是要搜索计算机中的每个文件?对于后者,请查看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
,您可以在C:/Users/myname/Desktop/Project/src
(来源)中使用您的python代码,并在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问题。