Стварэнне і захаванне файлаў у новым каталогу ў 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() з аргументам exist_ok=True. Нават калі мэтавая дырэкторыя ўжо існуе, памылка не адбудзецца, і каталог можна стварыць адразу.

import os

os.makedirs(new_dir_path, exist_ok=True)

Калі ў вас старэйшая версія Python і няма аргумента exist_ok у os.makedirs(), вы атрымаеце памылку, калі ўкажыце шлях да існуючай дырэкторыі, таму выкарыстоўвайце 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