πPython: ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΠ°ΠΉΠ» Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ - ΠΠ΅Π³ΠΊΠΈΠΉ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±
Π§ΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΡΠ°ΠΉΠ» Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ glob. ΠΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΡΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΈΠΌΠ΅Π½ΠΈ.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
import glob
# ΠΡΡΡ ΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ
path = '/ΠΏΡΡΡ/ΠΊ/ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ'
# ΠΠΎΠΈΡΠΊ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΈΠΌΠ΅Π½ΠΈ
files = glob.glob(path + '/*.txt')
# ΠΡΠ²ΠΎΠ΄ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ²
for file in files:
print(file)
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Ρ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .txt Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°Π±Π»ΠΎΠ½ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΡΠ°ΠΉΠ»Ρ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
Python: ΠΊΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΠ°ΠΉΠ» Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅
ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Π² Python, ΡΠ°ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π½Π°ΠΉΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ². Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², ΠΊΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΠ°ΠΉΠ» Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python.
1. ΠΠΎΠ΄ΡΠ»Ρ os.walk()
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π½Π°ΠΉΡΠΈ ΡΠ°ΠΉΠ»Ρ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ - ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ os.walk(). ΠΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π²ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ.
import os
def find_files(directory, pattern):
for root, dirs, files in os.walk(directory):
for file in files:
if pattern in file:
print(os.path.join(root, file))
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ find_files(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°: directory (ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΠΈΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Ρ) ΠΈ pattern (ΡΠ°Π±Π»ΠΎΠ½ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΈΡΠ΅ΠΌ). ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠΈΠΊΠ» os.walk() Π΄Π»Ρ ΠΏΡΠΎΡ ΠΎΠ΄Π° ΡΠ΅ΡΠ΅Π· Π²ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π»ΠΈ Π·Π°Π΄Π°Π½Π½ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅. ΠΡΠ»ΠΈ ΡΠ°Π±Π»ΠΎΠ½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ, ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ.
2. ΠΠΎΠ΄ΡΠ»Ρ glob
ΠΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ°ΠΉΠ»Π° Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ glob. ΠΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ glob.glob(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅.
import glob
def find_files(directory, pattern):
files = glob.glob(directory + "/" + pattern)
for file in files:
print(file)
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ find_files(), Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°: directory (ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΠΈΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Ρ) ΠΈ pattern (ΡΠ°Π±Π»ΠΎΠ½ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΈΡΠ΅ΠΌ). ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ glob.glob(), ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΈ Π²ΡΠ²Π΅Π»ΠΈ ΠΈΡ ΠΏΠΎΠ»Π½ΡΠ΅ ΠΏΡΡΠΈ.
3. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΠ°ΠΉΠ»Ρ Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌΠΈ ΠΈΠΌΠ΅Π½, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ re Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠΌΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² Python.
import os
import re
def find_files(directory, pattern):
pattern = re.compile(pattern)
for root, dirs, files in os.walk(directory):
for file in files:
if pattern.search(file):
print(os.path.join(root, file))
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ find_files(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°: directory (ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΠΈΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Ρ) ΠΈ pattern (ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΠΈΡΠ΅ΠΌ). ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ re.compile() Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ pattern.search() Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ Π² ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΡΠ»ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ, ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ.
4. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ
- ΠΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Python ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ os.walk()
- ΠΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Python ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ glob
- ΠΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Python ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ re
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ Π½ΡΠΆΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠΉ. Π£Π΄Π°ΡΠΈ!