目次
1. Paunang Salita
Ang Python ay napaka-flexible pagdating sa paghawak ng mga file, at maaaring i-automate ang maraming gawain gamit ang simpleng code. Sa artikulong ito, ipapakita namin ang ilang paraan upang “kunin ang pangalan ng file” gamit ang Python. Lalo naming tututukan ang mga standard library naos
module at pathlib
module. Sa pagbabasa ng artikulong ito, matututuhan mong epektibong manipulahin ang mga file sa loob ng isang direktoryo, at makakalikha ng script na kumukuha at nagfi-filter ng mga pangalan ng file.2. Pangunahing Paraan ng Pagkuha ng Pangalan ng File sa Python
Una, magsisimula tayo sa mga pangunahing paraan para kunin ang pangalan ng file sa Python. Sa pamamagitan ng paggamit ng function naos.path.basename()
, maaari mong makuha ang pangalan ng file mula sa tinukoy na path.2.1 Paggamit ng os.path.basename()
os.path.basename()
ay isang function na kumukuha lamang ng pangalan ng file mula sa buong path. Sa sumusunod na halimbawa, kinukuha ang pangalan ng file mula sa file path.import os
file_path = "/user/home/document/file.txt"
file_name = os.path.basename(file_path)
print(file_name) # Resulta: "file.txt"
2.2 Pagkuha ng Pangalan ng Direktoryo gamit ang os.path.dirname()
Gayundin, kapag ginamit mo ang os.path.dirname()
, maaari mong makuha ang pangalan ng direktoryo mula sa file path. Sa ganitong paraan, maaaring makuha nang hiwalay ang pangalan ng file at ng direktoryo.dir_name = os.path.dirname(file_path)
print(dir_name) # Resulta: "/user/home/document"
3. Kumuha ng Lahat ng Pangalan ng File sa Loob ng Direktoryo
Para makuha ang lahat ng mga file at folder sa loob ng isang direktoryo bilang listahan, maginhawa angos.listdir()
. Bukod pa rito, para makuha nang recursive ang mga file sa loob ng subdirectory, kapaki-pakinabang ang os.walk()
.3.1 Pagkuha ng Pangalan ng File Gamit ang os.listdir()
Sa paggamit ng os.listdir()
, makakakuha ka ng listahan ng lahat ng file at folder sa tinukoy na direktoryo. Angkop ito para sa simpleng operasyon ng direktoryo.import os
dir_path = "/user/home/document"
files = os.listdir(dir_path)
print(files) # Resulta: ["file1.txt", "file2.txt", "subfolder"]
3.2 Pagkuha ng Pangalan ng File nang Recursive Gamit ang os.walk()
Kung nais mong kunin nang recursive ang mga file kasama ang mga subdirectory, ang paggamit ng os.walk()
ang pinakaepektibo. Ipinapakita ng sumusunod na code ang listahan ng lahat ng file na nasa tinukoy na direktoryo at mga subdirectory nito.import os
dir_path = "/user/home/document"
for root, dirs, files in os.walk(dir_path):
for file in files:
print(os.path.join(root, file))
3.3 Pagdaragdag ng Paghawak ng Error
Maaaring maganap ang error kung ang direktoryo ay hindi umiiral o kung wala kang karapatang mag-access. Dahil dito, inirerekomenda ang pagdaragdag ng exception handling gamit angtry-except
.dir_path = "/invalid/path"
try:
files = os.listdir(dir_path)
print(files)
except FileNotFoundError:
print(f"{dir_path} hindi mahanap.")
4. Pagkuha at Pagbabago ng Extension
Kapag kumukuha ng pangalan ng file, maaaring kailanganin ding manipulahin ang extension. Sa pamamagitan ng paggamit ngos.path.splitext()
, posible ang paghihiwalay o pagbabago ng extension.4.1 Kumuha ng extension gamit ang os.path.splitext()
os.path.splitext()
ay isang function na nagbabalik ng pangalan ng file at extension nang hiwalay.import os
file_path = "/user/home/document/file.txt"
file_name, file_ext = os.path.splitext(file_path)
print(file_name) # Resulta: "/user/home/document/file"
print(file_ext) # Resulta: ".txt"
4.2 Pagbabago ng extension
Kapag nagbabago ng extension, idagdag ang bagong extension sa pangalan ng file na nakuha gamit angos.path.splitext()
.new_file_path = file_name + ".jpg"
print(new_file_path) # Resulta: "/user/home/document/file.jpg"
5. pathlib
module para sa pagkuha ng pangalan ng file
Sa Python 3.4 pataas, ang pathlib
module ay napaka-kapaki-pakinabang sa paghawak ng mga file path. Ang pathlib
ay maaaring magmanipula ng mga file path sa paraang object-oriented, kaya mas intuitive itong gamitin.5.1 Pagkuha ng pangalan ng file gamit ang Path.iterdir()
Sa paggamit ng method na iterdir()
ng pathlib.Path()
, maaari mong makuha ang mga pangalan ng file at folder sa tinukoy na direktoryo.from pathlib import Path
dir_path = Path("/user/home/document")
for item in dir_path.iterdir():
print(item.name)
5.2 Recursive na pagkuha ng file: rglob()
Kung nais mong kumuha ng mga pangalan ng file nang recursive kasama ang mga subdirectory, gamitin ang method na rglob()
. Maaari rin itong magamit bilang kapalit ng os.walk()
.for file in dir_path.rglob("*"):
print(file)
6. Pag-filter ng mga Pangalan ng File
Kung nais mong kunin lamang ang mga pangalan ng file na tumutugma sa tiyak na kondisyon, maaaring mag-filter gamit angglob
module o ang glob()
method ng pathlib
.6.1 Pag-filter batay sa Extension
Upang kunin lamang ang mga file na may tiyak na extension, gamitin ang wildcard na*
.from pathlib import Path
dir_path = Path("/user/home/document")
for file in dir_path.glob("*.txt"):
print(file)
Kinukuha ng code na ito lamang ang mga .txt
file sa tinukoy na direktoryo.7. Buod
Maraming paraan upang kunin ang pangalan ng file gamit ang Python, ngunit mahalagang pumili ng tamang pamamaraan ayon sa iyong pangangailangan.os
module mula sa mga pangunahing operasyon, hanggang sa mga advanced na tampok ng pathlib
, magagawa mong epektibong iproseso ang mga file sa loob ng direktoryo. Sa susunod, magbibigay kami ng impormasyon tungkol sa mga advanced na operasyon sa file tulad ng pagpapangalan muli, paglipat, at pagtanggal.