Krijimi dhe ruajtja e skedarëve në një drejtori të re në Python

biznes

Seksionet e mëposhtme shpjegojnë se si të krijoni dhe ruani një skedar të ri në Python duke përdorur një drejtori (dosje) të re si destinacion.

  • Gabim gjatë specifikimit të një drejtorie joekzistente me open()(FileNotFoundError)
  • os.makedirs()Krijo një drejtori
  • Shembull i kodit për të krijuar një skedar të ri me një destinacion

Më poshtë është një shembull i një skedari teksti.

Kur ruani imazhe, varet nga biblioteka nëse mund të specifikoni një shteg që përfshin një direktori që nuk ekziston (ose nëse do ta krijojë automatikisht një nëse nuk ekziston).
FileNotFoundErrorNëse ndodh ky gabim, mund të krijoni një direktori të re me os.madeirs() përpara se të ekzekutoni funksionin për të ruajtur, si në shembullin e mëposhtëm.

Gabim gjatë specifikimit të një drejtorie joekzistente me open()(FileNotFoundError)

Kur krijoni një skedar të ri me funksionin e integruar open(), ndodh një gabim nëse një shteg që përmban një direktori të re (një drejtori që nuk ekziston) specifikohet si argumenti i parë si destinacion.(FileNotFoundError)

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

Argumenti i parë i open() mund të jetë një shteg absolut ose një shteg në lidhje me drejtorinë aktuale.

Për përdorimin bazë të open(), të tilla si krijimi i një skedari të ri në një drejtori ekzistuese, ose mbishkrimi ose shtimi në një skedar ekzistues, referojuni artikullit vijues.

Krijo një drejtori(os.makedirs())

Kur krijoni një skedar të ri në një drejtori që nuk ekziston, është e nevojshme të krijoni drejtorinë përpara se të hapet().

Nëse jeni duke përdorur Python 3.2 ose më të ri, është e përshtatshme të përdorni os.makedirs() me argumentin exist_ok=True. Edhe nëse drejtoria e synuar ekziston tashmë, nuk do të ndodhë asnjë gabim dhe drejtoria mund të krijohet menjëherë.

import os

os.makedirs(new_dir_path, exist_ok=True)

Nëse keni një version më të vjetër të Python dhe nuk keni argumentin exist_ok në os.makedirs(), do të merrni një gabim nëse specifikoni shtegun drejt një drejtorie që ekziston, kështu që përdorni os.path.exists() për të kontrolluar ekzistenca e drejtorisë së pari.

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

Shihni artikullin e mëposhtëm për detaje.

Shembull i kodit për të krijuar një skedar të ri me një destinacion

Më poshtë është një shembull kodi i një funksioni që krijon dhe ruan një skedar të ri duke specifikuar drejtorinë e destinacionit.

Argumenti i parë dir_path është shtegu i drejtorisë së destinacionit, emri i skedarit të argumentit të dytë është emri i skedarit të ri që do të krijohet dhe argumenti i tretë file_content është përmbajtja që do të shkruhet, secila e specifikuar si një varg.

Nëse drejtoria e specifikuar nuk ekziston, krijoni një të re.

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)

Përdorni si më poshtë.

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

Në këtë rast, skedari new_file.txt me përmbajtjen “tekst i ri” do të krijohet në new_dir\sub_dir. Me fjalë të tjera, skedari i mëposhtëm do të krijohet rishtazi.new_dir/sub_dir/new_file.txt

Lidhja e dosjeve dhe emrave të skedarëve me os.path.join().

Gjithashtu, mënyra e open() është specifikuar si argument. Për skedarët e tekstit, “w” e paracaktuar është në rregull, por nëse doni të krijoni një skedar binar, vendosni modalitetin=’wb’.

Copied title and URL