[英]How do I correctly use the os.path to locate a file stored in a specific folder?
我是 python 的新手,我没有经常使用 os.path,但是随着我的项目的增长,我开始尝试将多个文件夹集成在一起,我意识到我开始使用 os.path 方法可能是最好的。
我目前正在尝试访问文件夹中的 json 文件data.json
(即在其他几个文件夹中)。 我查看了它在网上完成的方式,但我想我自己弄糊涂了。
import os
import json
x = os.path.join('c:', 'data.json')
data = json.loads(open(x).read())
print(data)
错误信息: FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Obada\\OneDrive\\Documents\\VS Code Projects\\Basic Chatbot\\data'
我建议使用os.listdir()方法查看当前活动文件夹中的现有文件(您可以使用os.getcwd() )来查看。
import os
import json
files = os.listdir()
x = os.path.join('c:', 'data.json')
for i in files:
if x in files:
data = json.loads(open(x).read())
print(data)
else:
print("File doesn't exist!")
有更好的方法可以做到这一点,但我试图让它对初学者友好,因为你是 python 新手。
path.join()
函数适用于您要在不同操作系统中运行的程序,在此示例中您不必使用 join 函数。
join 函数只是用/
或\
连接 2 个字符串,具体取决于操作系统
在这个例子中它的窗口,所以它使用\
如果它在 c 分区中,您可以只使用完整(原始)地址。
但是如果地址是相对的,例如这个例子:
.\example.json
它取决于您所在的当前文件或文件夹,在这种情况下是 python 脚本,您应该使用 join 函数
如果您在 Windows 上,您可以使用类似这样的方法访问 C:\ 中的文件。 注意第二个斜线是因为我们需要告诉python它是一个\
import os
fullfilename = os.path.join('C:\\', 'data.json')
data = json.loads(open(fullfilename).read())
print(data)
另一个有用的选项是 getcwd,它将为您提供当前运行 python 的目录。
currdir = os.getcwd()
FILEPATH = os.path.join(currdir,"data.json")
这将确保一切都相对于您运行代码的目录正常工作......无论您将代码移动到何处
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.