python - 使目录在不同计算机上通用(相对?)的方法?
问题描述
我是一名高中生,正在为一个项目制作视频游戏,请原谅我,我对 python/编码很陌生。我认为这将是一件相对容易弄清楚或在网上找到的事情,但我没有任何运气。显然,对于视频游戏,需要使用资产和文件。如何将目录设置为在另一台计算机上运行时可以使用的目录。更多详情如下:
现在我将它设置为 os.chdir(r'C:\Users\User\Desktop\VideoGame'),显然如果在另一台计算机上运行,路径会有所不同。我该如何设置它才能找到“VideoGame”文件,然后将其设置为目录。
显然我需要一个目录,以便 python 可以找到我需要的所有文件。但是假设我把我的文件夹和我的代码和我所有的资产放在上面,然后把它放在 U 盘上,然后把它交给我的老师,我怎么能确定他正在运行的 python 可以找到并使用其中的文件文件夹。
解决方案
在您澄清之后,我的理解是您希望将所有游戏资产加载到可移动驱动器中。我假设您将在assets
文件所在的目录中拥有该文件夹main.py
。
所以我解决这个问题的方法是首先获取main.py
文件的当前工作目录,然后添加assets\
到它,然后检查该目录是否真的存在。如果是,则继续操作,否则显示错误信息。
我的解决方案:
import os
dir_path = os.path.dirname(os.path.realpath(__file__))
dir_path = os.path.join(dir_path, r"assets")
if(os.path.exists(dir_path)):
# block of code
print()
else:
print("assets not found!\ncheck your directory")
如果我再次错过了什么,请随意发表评论。
推荐阅读
- sqlite - 创建具有依赖项(gradle 或 maven)的可执行 fat jar
- function - Flutter:如何更改其他函数中的本地值?
- python - 在 Python 刽子手游戏中遇到功能问题
- node.js - 是否可以将异步方法附加到猫鼬中异步插件中的模式?
- node.js - 在 Angular 11 中使用 NgSelect2Module 填充自定义数组
- java - Java android保持片段在后台运行
- php - Chrome Kaspersky 自动添加事件监听器导致验证码 SESSION['security variable'] 在后台更改
- java - 未能将 Hibernate 与 QuestDB 一起使用:缺少架构表
- php - 从外部 API 播种 Laravel DB
- angular - Firebase 服务人员和 Angular