Cum se fac modificări la mai multe fișiere utilizând Python

Spune că cineva este familiarizat cu ortografia britanică și a decis să-și încheie diploma în Statele Unite. El este rugat să scrie o lucrare despre Python pentru clasă. Este foarte familiarizat cu Python și nu are nicio problemă în scrierea lucrării. Vorbea despre imagini într-o parte a lucrării sale și scrie mai mult decât o dată cuvântul gri (Ortografie britanică) în loc de gri (Ortografie americană), în plus față de Cartier (Ortografie britanică) în loc de Cartier (Ortografie americană). Dar el este acum în SUA și trebuie să treacă prin toate cuvintele inscripționate pe calea britanică și să le înlocuiască cu ortografia SUA.

Acesta este unul dintre numeroasele scenarii în care trebuie să schimbăm ortografia sau greșeala multiplu locații. 

În acest sfat rapid, vă voi arăta un exemplu în care avem cinci fișiere text care mi-au corectat numele. Asta este, în loc să scrie Abder, Adber este scris. Exemplul vă va arăta cum putem folosi Python pentru a corecta ortografia numelui meu în toate fișierele text incluse într-un director.

Să începem!

Pregătirea datelor

Înainte de a merge mai departe cu exemplul, să pregătim datele (fișierele text) cu care dorim să lucrăm. Mergeți mai departe și descărcați directorul cu fișierele sale. Dezarhivați directorul și sunteți acum setați.

După cum puteți vedea, avem un director numit Abder care conține cinci fișiere diferite numite 1,2,3,4 și 5.

Punerea în aplicare

Să mergem la partea distractivă. Primul lucru pe care trebuie să-l facem este să citim conținutul directorului Abder. Pentru aceasta, putem folosi listdir () , după cum urmează:

import directorul os = os.listdir ('/ Users / DrAbder / Desktop / Abder')

Dacă încercăm să vedem ce se află în director, putem face următoarele:

imprimați directorul

În acest caz, vom obține:

[".DS_Store", "1.rtf", "2.rtf", "3.rtf", "4.rtf", "5.rtf"]

Aceasta arată că avem cinci RFT fișierele din interiorul directorului.

Pentru a ne asigura că lucrăm cu directorul curent (directorul de interes), îl putem folosi chdir după cum urmează:

os.chdir ( '/ Users / DrAbder / Spațiul de lucru / Abder')

Următorul lucru pe care trebuie să-l facem este să cuplați toate fișierele din director Abder. Putem folosi a pentru buclă după cum urmează:

pentru fișier în director:

Deoarece vrem să privim în fiecare din cele cinci fișiere din director și să căutăm Adber, lucrurile obișnuite de făcut în acest stadiu sunt deschiderea și citirea conținutului fiecărui fișier:

open_file = deschide (fișier, 'r') read_file = open_file.read ()

Acum vine un pas vital, mai ales atunci când vorbim despre potrivirea modelului, în cazul nostru, căutând Adber. Acest pas este utilizarea expresiilor regulate. În Python, pentru a folosi expresii regulate, vom folosi modulul re. 

Vom folosi două funcții principale din acest modul. Primul este compile ():

Compilați un model de expresie obișnuită într-un obiect de expresie obișnuită, care poate fi utilizat pentru potrivirea cu ajutorul acestuia Meci()și căutare() metode.

Și al doilea este sub (), pentru înlocuirea ortografiei greșite cu cea corectă. Vom face astfel:

regex = re.compile ('Adber') read_file = regex.sub ('Abder', read_file)

În cele din urmă, vrem să scriem noul text după înlocuirea fișierelor noastre, după cum urmează:

write_file = deschide (fișier, 'w') write_file.write (read_file)

Punându-le pe toți împreună

În această secțiune, să vedem cât de întreg scriptul Python, care va căuta Adber în fiecare fișier și înlocuiți-l cu acesta Abder, va arata:

import fișier = 'open' (deschideți fișierul, 'r /' / ' ) read_file = open_file.read () regex = re.compile ('Adber') read_file = regex.sub ('Abder', read_file) write_file =

După cum se poate vedea, Python face foarte ușor să efectueze modificări în mai multe fișiere folosind pentru buclă. Un alt aspect important care trebuie amintit aici este utilizarea expresiilor regulate pentru potrivirea modelului. 

Dacă doriți să aflați mai multe despre buclele Python, verificați o reîmprospătare netedă în buclele Python. Și, pentru mai multe informații despre expresiile regulate, verificați expresiile regulate în Python.

Cod