使用 json 创建路径并在其中添加文件?

creating a path and adding a files within it using json?

host = "html.com"
LNG = ENG, GED
input_folder = os.path.dirname(os.path.abspath(__file__))
output_folder = os.path.join(input_folder, 'output')
def get_filename(ext, base, sub_folder):
    filename = '{}.{}'.format(base, ext)
    return os.path.join(output_folder, sub_folder, filename)

subfolder = LNG + '\' + host
ref_filename = get_filename('pcm', output_filename + '_ref', subfolder)
if not os.path.exists(ref_filename):
    os.makedirs(ref_filename)
with open(ref_filename, 'wb') as f_pcm:
    f_pcm.write(payload)

cur_filename = get_filename('pcm', output_filename, subfolder)
with open(cur_filename, 'wb') as f_pcm:
    f_pcm.write(payload)

我正在尝试检查路径是否存在,如果不存在则创建一个。我正在创建输出文件夹然后是语言文件夹 ENG 和 GED。我正在其中创建另一个文件夹 html.com。稍后我将 json 和 pcm 文件添加到其中。 在上面的代码中(我没有添加所有内容)。除了最后一步,一切正常。

它没有添加像 _ref.pcm 这样的文件。它正在创建一个文件夹。 谁能告诉我哪里出错了?

os.makedirs() 将始终创建一个目录。这就是这样做的目的,这是预期的行为。当你给它文件名时,它会将其视为目录名并照此创建。将您的代码更改为以下内容:

def get_filename(ext, base, folder):
    filename = '{}.{}'.format(base, ext)
    return os.path.join( folder, filename)

output_folder = os.path.join( input_folder, 'output' )
subfolder = LNG + '\' + host
output_folder = os.path.join( output_folder, subfolder )

if not os.path.exists(output_folder):
    os.makedirs(output_folder);

# do note that output_filename is not defined anywhere
ref_filename = get_filename('pcm', output_filename + '_ref', output_folder)
with open(ref_filename, 'ab') as f_pcm:
   f_pcm.write(payload)

以上代码会先创建目录路径,如果不存在则创建文件,否则会打开已经存在的文件。

希望对您有所帮助。