在Python中创建和保存新目录下的文件

商业

下面几节解释了如何在Python中使用一个新的目录(文件夹)作为目标来创建和保存一个新的文件。

  • 用open()指定一个不存在的目录时出错(FileNotFoundError)
  • os.makedirs()创建一个目录
  • 创建一个有目的地的新文件的代码示例

下面是一个文本文件的例子。

当存储图像时,你是否可以指定一个包括不存在的目录的路径(或者如果不存在,它是否会自动创建一个),这取决于库的情况。
FileNotFoundError如果发生这种错误,你可以在执行函数保存之前用os.madeirs()创建一个新的目录,如下面的例子。

用open()指定一个不存在的目录时出错(FileNotFoundError)

当用内置函数open()创建一个新文件时,如果一个包含新目录(不存在的目录)的路径被指定为目标的第一个参数,会发生错误。(FileNotFoundError)

open('not_exist_dir/new_file.txt', 'w')
# FileNotFoundError

open()的第一个参数可以是一个绝对路径或与当前目录相对的路径。

关于open()的基本用法,如在现有目录中创建一个新文件,或覆盖或追加到现有文件中,请参考以下文章。

创建一个目录(os.makedirs())

当在一个不存在的目录中创建一个新的文件时,有必要在open()之前创建该目录。

如果你使用Python 3.2或更高版本,使用os.makedirs(),参数existence_ok=True是很方便的。即使目标目录已经存在,也不会发生错误,目录可以被立即创建。

import os

os.makedirs(new_dir_path, exist_ok=True)

如果你有一个旧版本的 Python,并且在 os.makedirs() 中没有参数 exist_ok,那么如果你指定一个存在的目录的路径,你会得到一个错误,所以先用 os.path.exists() 来检查目录的存在。

if not os.path.exists(new_dir_path):
    os.makedirs(new_dir_path)

详见以下文章。

创建一个有目的地的新文件的代码示例

下面是一个函数的代码示例,它通过指定目标目录来创建和保存一个新文件。

第一个参数dir_path是目标目录的路径,第二个参数filename是要创建的新文件的名称,第三个参数file_content是要写入的内容,每个参数都指定为一个字符串。

如果指定的目录不存在,则创建一个新的目录。

import os

def save_file_at_dir(dir_path, filename, file_content, mode='w'):
    os.makedirs(dir_path, exist_ok=True)
    with open(os.path.join(dir_path, filename), mode) as f:
        f.write(file_content)

使用方法如下。

save_file_at_dir('new_dir/sub_dir', 'new_file.txt', 'new text')

在这种情况下,内容为 “新文本 “的文件new_file.txt将被创建在new_dir/sub_dir。换句话说,以下文件将被新创建。new_dir/sub_dir/new_file.txt

用os.path.join()将目录和文件名连接起来。

另外,open()的模式被指定为一个参数。对于文本文件,默认的'w'就可以了,但如果你想创建一个二进制文件,请设置 mode='wb'。

Copied title and URL