Python оператор "с открытым" создает файл с каталогом в качестве имени, но не в реальном каталоге - PullRequest
0 голосов
/ 23 апреля 2020

Я хочу сохранить JSON -данные в файл (до того, как он не существовал), используя следующий код, который работает с Python 3.6.5:

with open("Samples\\{}.json".format(id), "w", encoding="utf-8") as f:
    json.dump(labels, f, ensure_ascii=False, indent=4)

Это создаст новый. json файл в папке Samples.
Теперь я попытался сделать то же самое с Python 3.7.3, но вместо создания нового файла. json в указанном каталоге он создает файл с именем, например "Samples". \ xyz. json "в каталоге работает код python (работает в блокноте jupyter).

Я уже пробовал выполнить следующее, но это приводит к той же проблеме при создании файла с каталогом как имя файла:

f = open(os.path.expanduser(os.path.join("Samples/{}.json".format(document_id)))
json.dump(labels, f, ensure_ascii=False, indent=4)

Как создать новый файл. json в нужном каталоге с помощью Python 3.7.3?

1 Ответ

2 голосов
/ 23 апреля 2020

с pathlib & f-string:

from pathlib import Path
document_id = 100 # Random id here ...
sample_file = Path("Samples") / f"{document_id}.json"
sample_file.parent.mkdir(exist_ok=True)
with sample_file.open("w", encoding="utf-8") as f:
    json.dump(labels, f, ensure_ascii=False, indent=4)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...