繁体   English   中英

如何正确使用 os.path 来定位存储在特定文件夹中的文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM