Мазмунга өтүү

Жолдор жана файл системасы менен иштөө

Сабактын башталышы

Жолдор жана файл системасы менен иштөө

pathlib жана os аркылуу файл жолдорун көчмөлүү куруу, талдоо жана кыдыруу

Негизги идея: Баштапкы курста сиз файлды анын атын катуу жазып ачкансыз. Чыныгы программалар так жолду алдын ала сейрек билет: алар аны бөлүктөрдөн курат, бар-жогун текшерет, папканын ичиндегилерди тизмелейт жана бүтүндөй каталог дарактарын кыдырат. Мунун Python'догу заманбап куралы - pathlib.Path: жолду морт сап катары эмес, түзүмдүү маалымат катары караган объект. Эски os модулу дагы бир нече боштукту толтурат, ошондуктан сиз экөөнү тең кездештиресиз.
Аягында сиз төмөнкүлөрдү жасай аласыз:
  • жолдорду "+" жана "/" аркылуу жабыштыруу ар кайсы операциялык системада эмне үчүн бузулаарын түшүндүрүү,
  • жолдорду Path жана / оператору менен коопсуз куруу,
  • жолду бөлүктөргө талдоо: .name, .stem, .suffix, .parent жана .parts,
  • бар-жогун жана түрүн .exists(), .is_file(), .is_dir() менен текшерүү,
  • папкаларды .mkdir(parents=True, exist_ok=True) менен түзүү,
  • каталогдун ичиндегилерди .iterdir(), .glob() жана .rglob() менен тизмелөө жана чыпкалоо,
  • бүтүндөй папка дарагын кыдыруу жана os качан керек экенин билүү.

1. Маселе: жол жөн гана сап эмес

Жол кадимки сапка окшойт, ошондуктан биринчи азгырык - бөлүктөрдү + менен жабыштыруу:

folder = "data"
name = "report.txt"
path = folder + "/" + name      # "data/report.txt" - морт!

Бул ойлонуп эмес, кокустуктан иштейт. Ичинде эки чыныгы маселе жашырынган:

  • Бөлгүчтөр айырмаланат. Linux жана macOS папкаларды түз сызык / менен бөлөт; Windows тескери сызык \ колдонот. Бирин катуу жазсаңыз, экинчи машинаны бузасыз.
  • Чектик учурлар топтолот. folder мурунтан слэш менен бүтөбү? Бөлүк бош эмеспи? Сап арифметикасы ар бир учурду колмо-кол иштетүүгө мажбурлайт, бир өткөрүп жиберген учур жолду бузат.

pathlib муну жолду объект кылып чечет - ал өзүн иштеп жаткан ар кандай операциялык системада туура кошуп, бөлүп жана салыштыра билет.

Бул сабакты YourAIZone платформасында улантыңыз

Толук сабакта — толук түшүндүрмө, чыгарылган мисалдар, көп кездешкен каталар, заматта текшерилүүчү тесттер жана ЖИ-репетитор. Конок катары дароо баштаңыз же прогрессти сактоо үчүн аккаунт түзүңүз.

Толук сабакта

  • Толук түшүндүрмө
  • Чыгарылган мисалдар
  • Көп кездешкен каталар жана алардан кантип качуу керек
  • Тест суроолору: 15
  • Тема боюнча суроолорго жооп берген ЖИ-репетитор
  • Окуучу, ата-эне жана мугалим үчүн прогрессти көзөмөлдөө