python - 为什么 open ('file' ,'w' ) 说文件不存在?

标签 python python-3.x file ubuntu

我有一个功能:

def loadFile(file):
    path = script_dir + file #script_dir has the form '/home/username/blah/blah/' and file has the form 'asdf/foo.txt'
    temp = open(path,'w')
    temp.close()
    with open(path) as f:
        return f.read().replace('\n', '')
当我运行 print(loadFile('asdf/asdf.txt'))在python3中,我收到错误:
FileNotFoundError: [Errno 2] No such file or directory: '/home/username/blah/blah/asdf/asdf.txt'
为什么会这样?我很困扰。我到处看它都说'w'将创建文件,为什么不是。
注 1:我运行 Zorin OS Education Lite(对不起,我无法为您提供更通用的术语)。
注意 2:我有一个 NTFS 分区安装在 /home/username/blah/

最佳答案

open(path,'w')肯定会在 path 创建文件如果它不存在,但前提是路径中的所有目录都已经存在。也就是说,它会创建一个文件,但不会创建目录。
(此外,除非您对将在其中创建文件的目录具有写权限,否则它无法创建文件。但这会给您带来不同的错误消息。)

关于python - 为什么 open ('file' ,'w' ) 说文件不存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66510858/

相关文章:

python - 当不需要分配结果时如何调用Python函数

python-3.x - 如何在 python 订阅者中捕获 google.auth.exceptions.RefreshError?

c - 删除名称上带有空格的文件

python - list-comprehension "create list"和 "append elements"与简单循环有何不同?

python - Mitmproxy 在一个脚本中篡改 GET 和 POST 请求/响应

python - 流套接字发送/接收广播消息?

python - Linux 上的 psutil 显示没有 CPU 核心温度

c++ - 从文件中获取输入

git - 如何在 Refactor > Rename 上避免 PhpStorm 暂存文件

python - 如何从 Odoo 中的自定义 Python 代码调用系统参数?