பைத்தானில் உள்ள அடைவு கோப்பு பட்டியல்
பைதான் நிரலாக்கத்தில், நீங்கள் கோப்புகளை ஒழுங்கமைத்தாலும், தரவை செயலாக்கினாலும் அல்லது பணிகளை தானியக்கமாக்கினாலும், கோப்பகத்தில் உள்ள அனைத்து கோப்புகளையும் பட்டியலிடுவது பொதுவான பணியாகும். இதை எளிதாகவும் திறமையாகவும் நிறைவேற்ற பைதான் பல முறைகளை வழங்குகிறது.
இந்தக் கட்டுரையில், பைத்தானைப் பயன்படுத்தி ஒரு கோப்பகத்தில் உள்ள அனைத்து கோப்புகளையும் பட்டியலிடுவதற்கான பல்வேறு வழிகளையும் அவற்றை எவ்வாறு பட்டியலில் சேர்ப்பது என்பதையும் ஆராய்வோம். முடிவில், உங்கள் பைதான் திட்டங்களில் கோப்பக உள்ளடக்கங்களை நிரல் முறையில் எவ்வாறு நிர்வகிப்பது என்பது பற்றிய தெளிவான புரிதல் உங்களுக்கு இருக்கும்.
கட்டளை | விளக்கம் |
---|---|
os.walk(directory_path) | மேல்-கீழ் அல்லது கீழ்-மேலே நடப்பதன் மூலம் கோப்பக மரத்தில் கோப்பு பெயர்களை உருவாக்குகிறது. |
os.path.join(root, file) | ஒன்று அல்லது அதற்கு மேற்பட்ட பாதை கூறுகளை புத்திசாலித்தனமாக இணைத்து, தேவையான அடைவு பிரிப்பான்களைச் சேர்க்கிறது. |
Path(directory_path) | குறிப்பிட்ட அடைவு பாதைக்கான பாதை பொருளை உருவாக்குகிறது, கோப்பு முறைமை பாதைகளை கையாள பல்வேறு முறைகளை வழங்குகிறது. |
path.rglob('*') | கோப்பகத்தில் குறிப்பிடப்பட்ட வடிவத்துடன் பொருந்தக்கூடிய எல்லா கோப்புகளையும் மீண்டும் மீண்டும் அளிக்கிறது. |
file.is_file() | பாதையானது வழக்கமான கோப்பாக இருந்தால் (கோப்பகம் அல்லது சிம்லிங்க் அல்ல) உண்மை எனத் தரும். |
str(file) | பாதை பொருளை கோப்பு பாதையின் சரம் பிரதிநிதித்துவமாக மாற்றுகிறது. |
பைத்தானில் உள்ள டைரக்டரி லிஸ்டிங் ஸ்கிரிப்ட்களைப் புரிந்துகொள்வது
முதல் ஸ்கிரிப்ட் பயன்படுத்துகிறது os தொகுதி, குறிப்பாக os.walk(directory_path) செயல்பாடு, அடைவு மரத்தை கடந்து செல்ல. இந்தச் செயல்பாடு ஒரு அடைவு மரத்தில் கோப்பு பெயர்களை உருவாக்குகிறது, மேல் கோப்பகத்தில் தொடங்கி இலை கோப்பகங்கள் வரை. இந்த வளையத்திற்குள், நாங்கள் பயன்படுத்துகிறோம் os.path.join(root, file) இயக்க முறைமையைப் பொருட்படுத்தாமல் இறுதி பாதை செல்லுபடியாகும் என்பதை உறுதிசெய்து, அடைவு பாதை மற்றும் கோப்பு பெயரை சரியாக இணைக்க. அனைத்து கோப்புகளின் பாதைகளும் பின்னர் இணைக்கப்படும் files_list பட்டியல், இது செயல்பாட்டின் முடிவில் திரும்பும். இந்த முறை பெரிய அடைவு கட்டமைப்புகளுக்கு பயனுள்ளதாக இருக்கும், ஏனெனில் இது கோப்புகளை படிப்படியாக செயலாக்குகிறது.
இரண்டாவது ஸ்கிரிப்ட் பயன்படுத்துகிறது pathlib நூலகம், இது கோப்பு முறைமையுடன் தொடர்பு கொள்ள பொருள் சார்ந்த இடைமுகத்தை வழங்குகிறது. ஒரு உருவாக்குவதன் மூலம் தொடங்குகிறோம் Path கொடுக்கப்பட்ட கோப்பகத்திற்கான பொருள். தி path.rglob('*') கொடுக்கப்பட்ட வடிவத்துடன் பொருந்தக்கூடிய அனைத்து கோப்புகளையும் மீண்டும் மீண்டும் கண்டுபிடிக்க முறை பயன்படுத்தப்படுகிறது. தி file.is_file() கண்டுபிடிக்கப்பட்ட ஒவ்வொரு பாதையும் வழக்கமான கோப்பாக உள்ளதா என்பதை முறை சரிபார்க்கிறது. அது இருந்தால், நாங்கள் அதை மாற்றுகிறோம் Path பயன்படுத்தி ஒரு சரத்திற்கு பொருள் str(file) மற்றும் அதை சேர்க்க files_list. இந்த அணுகுமுறை மிகவும் நவீனமானது மற்றும் அதன் வாசிப்புத்திறன் மற்றும் பயன்பாட்டின் எளிமைக்காக பெரும்பாலும் விரும்பப்படுகிறது. இது பல்வேறு வகையான பாதைகளையும் (சிம்லிங்க்ஸ் போன்றவை) மிகவும் அழகாகக் கையாளுகிறது.
பைத்தானைப் பயன்படுத்தி டைரக்டரி கோப்புகளைப் பட்டியலிடவும், பட்டியலில் சேர்க்கவும்
பைதான் - os மற்றும் os.path நூலகங்களைப் பயன்படுத்துதல்
import os
def list_files_in_directory(directory_path):
files_list = []
for root, dirs, files in os.walk(directory_path):
for file in files:
files_list.append(os.path.join(root, file))
return files_list
# Example usage
directory_path = '/path/to/directory'
files = list_files_in_directory(directory_path)
print(files)
ஒரு கோப்பகத்தில் உள்ள அனைத்து கோப்புகளையும் பட்டியலிடுதல் மற்றும் பைத்தானில் ஒரு பட்டியலில் சேர்த்தல்
பைதான் - பாத்லிப் நூலகத்தைப் பயன்படுத்துகிறது
from pathlib import Path
def list_files(directory_path):
path = Path(directory_path)
files_list = [str(file) for file in path.rglob('*') if file.is_file()]
return files_list
# Example usage
directory_path = '/path/to/directory'
files = list_files(directory_path)
print(files)
பைத்தானில் அடைவு கோப்பு பட்டியலுக்கான மேம்பட்ட நுட்பங்கள்
முன்னர் விவாதிக்கப்பட்ட முறைகளுக்கு கூடுதலாக, ஒரு கோப்பகத்தில் கோப்புகளை பட்டியலிடுவதற்கான மற்றொரு சக்திவாய்ந்த அணுகுமுறை பயன்படுத்துகிறது os.scandir() செயல்பாடு. இந்த முறை ஒரு மறு செய்கையை வழங்குகிறது os.DirEntry கோப்புகள் மற்றும் கோப்பகங்கள் பற்றிய தகவல்களைக் கொண்டிருக்கும் பொருள்கள். அதை விட திறமையானது os.listdir() அல்லது os.walk() ஏனெனில் இது ஒரே கணினி அழைப்பில் அடைவு உள்ளீடுகளையும் அவற்றின் பண்புக்கூறுகளையும் மீட்டெடுக்கிறது. பெரிய கோப்பகங்களைக் கையாளும் போது அல்லது அளவு அல்லது மாற்றியமைக்கும் நேரம் போன்ற அவற்றின் பண்புக்கூறுகளின் அடிப்படையில் கோப்புகளை வடிகட்ட வேண்டியிருக்கும் போது இது மிகவும் பயனுள்ளதாக இருக்கும்.
மற்றொரு மேம்பட்ட நுட்பம் பயன்படுத்துவதை உள்ளடக்கியது glob தொகுதி, இது பாதைபெயர் வடிவ விரிவாக்கத்திற்கான செயல்பாட்டை வழங்குகிறது. தி glob.glob() செயல்பாடு குறிப்பிட்ட வடிவத்துடன் பொருந்தும் பாதைகளின் பட்டியலை வழங்குகிறது. சுழல்நிலை கோப்பு பட்டியலுக்கு, glob.iglob() உடன் பயன்படுத்தலாம் recursive=True அளவுரு. இந்த முறையானது எளிமையான வடிவ பொருத்தத்திற்கு மிகவும் திறமையானது மற்றும் குறிப்பிட்ட கோப்பு வகைகளை செயலாக்க வேண்டிய தரவு செயலாக்க பைப்லைன்களில் பெரும்பாலும் பயன்படுத்தப்படுகிறது. மேலும், இந்த முறைகளை இணை செயலாக்க நூலகங்களுடன் ஒருங்கிணைத்தல் concurrent.futures மல்டி-கோர் செயலிகளை மேம்படுத்துவதன் மூலம் கோப்பு முறைமை செயல்பாடுகளை கணிசமாக வேகப்படுத்த முடியும்.
பைத்தானில் டைரக்டரி கோப்புகளை பட்டியலிடுவது பற்றிய பொதுவான கேள்விகள்
- ஒரு கோப்பகத்தில் குறிப்பிட்ட கோப்பு வகைகளை மட்டும் பட்டியலிடுவது எப்படி?
- பயன்படுத்த glob.glob('*.txt') ஒரு குறிப்பிட்ட நீட்டிப்புடன் கோப்புகளை பொருத்த மற்றும் பட்டியலிடுவதற்கான செயல்பாடு.
- பட்டியலிடும்போது ஒவ்வொரு கோப்பின் அளவையும் எப்படிப் பெறுவது?
- பயன்படுத்தவும் os.stat(file).st_size ஒவ்வொரு கோப்பின் அளவையும் பைட்டுகளில் பெற.
- கோப்புகளை மாற்றியமைத்த தேதியின்படி வரிசைப்படுத்த முடியுமா?
- ஆம், பயன்படுத்தவும் os.path.getmtime(file) மாற்றியமைக்கும் நேரத்தை மீட்டெடுக்கவும், அதன்படி வரிசைப்படுத்தவும்.
- சில கோப்புகள் அல்லது கோப்பகங்களை நான் எவ்வாறு விலக்குவது?
- கோப்புகள் அல்லது கோப்பகங்களின் பெயர்கள் அல்லது பாதைகளின் அடிப்படையில் வடிகட்ட உங்கள் லூப்பில் உள்ள நிபந்தனைகளைப் பயன்படுத்தவும்.
- கோப்புகளை பிரித்தெடுக்காமல் ஜிப் காப்பகத்தில் பட்டியலிட முடியுமா?
- ஆம், பயன்படுத்தவும் zipfile.ZipFile வகுப்பு மற்றும் அதன் namelist() ஜிப் காப்பகத்திற்குள் கோப்புகளை பட்டியலிடுவதற்கான முறை.
- கோப்புகளை வடிகட்ட வழக்கமான வெளிப்பாடுகளைப் பயன்படுத்தலாமா?
- ஆம், இணைக்கவும் re கொண்ட தொகுதி os.listdir() வடிவங்களின் அடிப்படையில் கோப்புகளை வடிகட்ட.
- கோப்புகளை பட்டியலிடும்போது குறியீட்டு இணைப்புகளை எவ்வாறு கையாள்வது?
- பயன்படுத்தவும் os.path.islink() ஒரு பாதை ஒரு குறியீட்டு இணைப்பு என்பதைச் சரிபார்த்து, அதற்கேற்ப அதைக் கையாளவும்.
- ரிமோட் சர்வரில் கோப்புகளை பட்டியலிட வேண்டுமானால் என்ன செய்வது?
- போன்ற நூலகங்களைப் பயன்படுத்துங்கள் paramiko SSH மற்றும் SFTP க்கு ரிமோட் சர்வரில் கோப்புகளை பட்டியலிட.
- ஒரு கோப்பகத்தில் உள்ள கோப்புகளின் எண்ணிக்கையை எப்படி எண்ணுவது?
- பயன்படுத்தவும் len(os.listdir(directory_path)) ஒரு கோப்பகத்தில் உள்ள கோப்புகளின் எண்ணிக்கையை எண்ணுவதற்கு.
ரேப்பிங் அப்: பைத்தானில் திறமையான கோப்பு பட்டியல்
முடிவில், பைதான் ஒரு கோப்பகத்தில் கோப்புகளை பட்டியலிடுவதற்கும் அவற்றை பட்டியலில் சேர்ப்பதற்கும் பல வலுவான முறைகளை வழங்குகிறது. os தொகுதி என்பது விரிவான அடைவுப் பயணத்திற்கான பல்துறைத் தேர்வாகும், அதே நேரத்தில் பாத்லிப் நூலகம் ஒரு பொருள் சார்ந்த அணுகுமுறையை வழங்குகிறது, இது குறியீடு வாசிப்புத்திறன் மற்றும் பராமரிப்பை மேம்படுத்துகிறது. கூடுதலாக, குளோப் தொகுதி முறை பொருத்தத்தில் சிறந்து விளங்குகிறது மற்றும் கோப்பு தேடல் பணிகளை எளிதாக்குகிறது. இந்தக் கருவிகளைப் புரிந்துகொண்டு பயன்படுத்துவதன் மூலம், டெவலப்பர்கள் தங்கள் பைதான் திட்டங்களில் அடைவு உள்ளடக்கங்களை திறமையாக நிர்வகிக்கலாம் மற்றும் செயலாக்கலாம்.