பைத்தானில் கோப்பு மேலாண்மையைக் கண்டறிதல்
கோப்பகங்கள் மற்றும் கோப்புகளுடன் பணிபுரிவது நிரலாக்கத்தில் பொதுவான பணியாகும். பைத்தானில், ஒரு கோப்பகத்தில் உள்ள அனைத்து கோப்புகளையும் பட்டியலிடவும், மேலும் செயலாக்கத்திற்கான பட்டியலில் அவற்றை சேமிக்கவும் பல முறைகள் உள்ளன.
குறியீட்டு எடுத்துக்காட்டுகள் மற்றும் விளக்கங்களை வழங்கும், இதை அடைவதற்கான திறமையான வழிகளை இந்தக் கட்டுரை ஆராயும். நீங்கள் ஒரு தொடக்கநிலை அல்லது அனுபவம் வாய்ந்த புரோகிராமராக இருந்தாலும், பைத்தானில் உங்கள் கோப்பு மேலாண்மை பணிகளை நெறிப்படுத்த இந்த நுட்பங்கள் உதவும்.
கட்டளை | விளக்கம் |
---|---|
os.listdir(directory) | குறிப்பிட்ட கோப்பகத்தில் உள்ளீடுகளின் பெயர்களைக் கொண்ட பட்டியலை வழங்கும். |
os.path.isfile(path) | குறிப்பிட்ட பாதை ஏற்கனவே உள்ள வழக்கமான கோப்பாக உள்ளதா என்பதைச் சரிபார்க்கிறது. |
os.path.join(path, *paths) | ஒன்று அல்லது அதற்கு மேற்பட்ட பாதைக் கூறுகளை புத்திசாலித்தனமாக இணைத்து, ஒற்றைப் பாதையைத் திருப்பி அனுப்புகிறது. |
Path(directory).iterdir() | குறிப்பிட்ட கோப்பகத்தில் உள்ள அனைத்து கோப்புகள் மற்றும் துணை கோப்பகங்களின் மறு செய்கையை வழங்கும். |
file.is_file() | பாதையானது வழக்கமான கோப்பாகவோ அல்லது ஒரு கோப்பிற்கான குறியீட்டு இணைப்பாகவோ இருந்தால் உண்மை எனத் தரும். |
os.walk(directory) | ஒரு கோப்பக மரத்தில் கோப்பு பெயர்களை உருவாக்குகிறது, மேலிருந்து கீழாகவோ அல்லது கீழ்மட்டமாகவோ நடக்கும். |
பைதான் டைரக்டரி டிராவர்சலைப் புரிந்துகொள்வது
மேலே கொடுக்கப்பட்டுள்ள ஸ்கிரிப்டுகள் பைத்தானைப் பயன்படுத்தி ஒரு கோப்பகத்தில் உள்ள அனைத்து கோப்புகளையும் பட்டியலிட பல்வேறு முறைகளை விளக்குகின்றன. முதல் ஸ்கிரிப்ட் பயன்படுத்துகிறது os தொகுதி, இது பைத்தானில் உள்ளமைக்கப்பட்ட தொகுதி ஆகும், இது இயக்க முறைமை சார்ந்த செயல்பாட்டைப் பயன்படுத்துவதற்கான வழியை வழங்குகிறது. பயன்படுத்தி os.listdir(directory), குறிப்பிட்ட கோப்பகத்தில் உள்ள அனைத்து உள்ளீடுகளின் பட்டியலைப் பெறலாம். பின்னர், இந்த உள்ளீடுகள் மூலம் மீண்டும் மீண்டும் மற்றும் ஒவ்வொன்றையும் சரிபார்ப்பதன் மூலம் os.path.isfile(path), நாம் கோப்பகங்களை வடிகட்ட முடியும் மற்றும் எங்கள் பட்டியலில் கோப்புகளை மட்டுமே சேர்க்க முடியும். இரண்டாவது ஸ்கிரிப்ட் பயன்படுத்துகிறது pathlib தொகுதி, இது கோப்பு முறைமை பாதைகளுக்கு அதிக பொருள் சார்ந்த அணுகுமுறையை வழங்குகிறது. பயன்படுத்தி Path(directory).iterdir(), கோப்பகத்தில் உள்ள அனைத்து உள்ளீடுகளின் மறு செய்கையைப் பெறுவோம், மேலும் இவற்றை வடிகட்டுவதன் மூலம் file.is_file(), நாம் கோப்புகளை மட்டுமே சேகரிக்க முடியும்.
மூன்றாவது ஸ்கிரிப்ட் துணை அடைவுகளில் உள்ள கோப்புகள் உட்பட விரிவான கோப்பு பட்டியலுக்கு வடிவமைக்கப்பட்டுள்ளது. இது பயன்படுத்துகிறது os.walk(directory), குறிப்பிட்ட கோப்பகத்தில் வேரூன்றிய மரத்தில் உள்ள ஒவ்வொரு கோப்பகத்திற்கும் கோப்பக பாதை, துணை அடைவுகள் மற்றும் கோப்புப் பெயர்களின் ஒரு துப்பிளை வழங்கும் ஜெனரேட்டர். இது கோப்பக மரத்தை மீண்டும் மீண்டும் கடந்து அனைத்து கோப்பு பெயர்களையும் சேகரிக்க அனுமதிக்கிறது. இந்த ஸ்கிரிப்டுகள் பைத்தானில் டைரக்டரி டிராவர்சலைக் கையாள்வதற்கான திறமையான வழிகளை நிரூபிக்கின்றன, இவை இரண்டையும் எளிமையாக வழங்குகின்றன. os மற்றும் மேம்படுத்தப்பட்ட செயல்பாடு pathlib. இந்த கட்டளைகள் மற்றும் முறைகளைப் புரிந்துகொள்வது கோப்பு மேலாண்மை பணிகளுக்கு முக்கியமானது, கோப்புகள் ஒரு அடைவு கட்டமைப்பிற்குள் சரியாக அடையாளம் காணப்பட்டு செயலாக்கப்படுவதை உறுதி செய்கிறது.
பைத்தானின் ஓஎஸ் தொகுதியைப் பயன்படுத்தி ஒரு கோப்பகத்தில் கோப்புகளை பட்டியலிடுதல்
டைரக்டரி டிராவர்சலுக்கு os தொகுதியைப் பயன்படுத்துதல்
import os
def list_files_os(directory):
files = []
for filename in os.listdir(directory):
if os.path.isfile(os.path.join(directory, filename)):
files.append(filename)
return files
# Example usage
directory_path = '/path/to/directory'
files_list = list_files_os(directory_path)
print(files_list)
பைத்தானின் பாத்லிப் தொகுதியைப் பயன்படுத்தி அடைவு உள்ளடக்கத்தைப் பெறுதல்
கோப்பு பட்டியலுக்கு பாத்லிப் தொகுதியைப் பயன்படுத்துதல்
from pathlib import Path
def list_files_pathlib(directory):
return [str(file) for file in Path(directory).iterdir() if file.is_file()]
# Example usage
directory_path = '/path/to/directory'
files_list = list_files_pathlib(directory_path)
print(files_list)
os.walk உடன் சுழல்நிலை கோப்பு பட்டியல்
சுழல்நிலை அடைவு பயணத்திற்கு os.walk ஐப் பயன்படுத்துதல்
import os
def list_files_recursive(directory):
files = []
for dirpath, _, filenames in os.walk(directory):
for filename in filenames:
files.append(os.path.join(dirpath, filename))
return files
# Example usage
directory_path = '/path/to/directory'
files_list = list_files_recursive(directory_path)
print(files_list)
பைத்தானில் மேம்பட்ட கோப்பு பட்டியல் நுட்பங்கள்
ஒரு கோப்பகத்தில் கோப்புகளை பட்டியலிடுவதற்கான அடிப்படை முறைகளுக்கு அப்பால் os மற்றும் pathlib தொகுதிகள், சிறப்புப் பணிகளுக்குப் பயன்படுத்தக்கூடிய மேம்பட்ட நுட்பங்கள் உள்ளன. அத்தகைய ஒரு முறை பயன்படுத்தப்படுகிறது glob தொகுதி, இது Unix ஷெல் பயன்படுத்தும் விதிகளின்படி ஒரு குறிப்பிட்ட வடிவத்துடன் பொருந்தக்கூடிய அனைத்து பாதைப்பெயர்களையும் கண்டறியும். குறிப்பிட்ட நீட்டிப்புகள் அல்லது வடிவங்களைக் கொண்ட கோப்புகளை பட்டியலிட இது மிகவும் பயனுள்ளதாக இருக்கும். உதாரணமாக, பயன்படுத்தி glob.glob('*.txt') தற்போதைய கோப்பகத்தில் உள்ள அனைத்து உரை கோப்புகளையும் பட்டியலிடும். கோப்பக உள்ளீடுகள் மூலம் கைமுறையாக மீண்டும் செய்யாமல், அவற்றின் பெயர்கள் அல்லது நீட்டிப்புகளின் அடிப்படையில் கோப்புகளை வடிகட்ட இந்த முறை ஒரு நெகிழ்வான வழியை வழங்குகிறது.
மற்றொரு மேம்பட்ட நுட்பத்தை மேம்படுத்துவது fnmatch தொகுதி, இது Unix-பாணி குளோப் வடிவங்களுக்கு எதிராக கோப்பு பெயர்களை ஒப்பிட்டு செயல்பாடுகளை வழங்குகிறது. இதை இணைந்து பயன்படுத்தலாம் os.listdir() அல்லது pathlib மிகவும் சிக்கலான வடிவங்களின் அடிப்படையில் கோப்புகளை வடிகட்ட. உதாரணமாக, fnmatch.filter(os.listdir(directory), '*.py') குறிப்பிட்ட கோப்பகத்தில் உள்ள அனைத்து பைதான் கோப்புகளின் பட்டியலை வழங்கும். கூடுதலாக, பெரிய தரவுத்தொகுப்புகள் அல்லது செயல்திறன்-முக்கியமான பயன்பாடுகளுக்கு, பயன்படுத்துதல் scandir இருந்து os தொகுதி மிகவும் பயனுள்ளதாக இருக்கும் listdir இது கோப்பு பெயர்களுடன் கோப்பு பண்புகளை மீட்டெடுக்கிறது, கணினி அழைப்புகளின் எண்ணிக்கையை குறைக்கிறது. இந்த மேம்பட்ட நுட்பங்களைப் புரிந்துகொள்வது பைத்தானில் மிகவும் சக்திவாய்ந்த மற்றும் நெகிழ்வான கோப்பு மேலாண்மை தீர்வுகளை அனுமதிக்கிறது.
பைத்தானில் உள்ள அடைவு பட்டியல் பற்றி அடிக்கடி கேட்கப்படும் கேள்விகள்
- ஒரு கோப்பகம் மற்றும் அதன் துணை அடைவுகளில் உள்ள அனைத்து கோப்புகளையும் எவ்வாறு பட்டியலிடுவது?
- பயன்படுத்தவும் os.walk(directory) அடைவு மரத்தை கடந்து அனைத்து கோப்புகளையும் பட்டியலிட.
- ஒரு குறிப்பிட்ட நீட்டிப்புடன் கோப்புகளை எவ்வாறு பட்டியலிடுவது?
- பயன்படுத்தவும் glob.glob('*.extension') அல்லது fnmatch.filter(os.listdir(directory), '*.extension').
- என்ன வித்தியாசம் os.listdir() மற்றும் os.scandir()?
- os.scandir() கோப்பு பெயர்களுடன் கோப்பு பண்புக்கூறுகளை மீட்டெடுப்பதால் இது மிகவும் திறமையானது.
- ஒரு கோப்பகத்தில் மறைக்கப்பட்ட கோப்புகளை பட்டியலிட முடியுமா?
- ஆம், பயன்படுத்தி os.listdir() மறைக்கப்பட்ட கோப்புகளை (புள்ளியுடன் தொடங்கும்) பட்டியலிடும்.
- பட்டியலிலிருந்து கோப்பகங்களை எவ்வாறு விலக்குவது?
- பயன்படுத்தவும் os.path.isfile() அல்லது file.is_file() உடன் pathlib கோப்புகளை மட்டும் வடிகட்ட.
- கோப்புகளின் பட்டியலை வரிசைப்படுத்த முடியுமா?
- ஆம், நீங்கள் பயன்படுத்தலாம் sorted() கோப்புகளின் பட்டியலில் செயல்பாடு.
- பெரிய அடைவுகளை நான் எவ்வாறு திறமையாக கையாள முடியும்?
- பயன்படுத்தவும் os.scandir() பெரிய அடைவுகளுடன் சிறந்த செயல்திறனுக்காக.
- கோப்பு அளவு மற்றும் மாற்றப்பட்ட தேதியை நான் பெற முடியுமா?
- ஆம், பயன்படுத்தவும் os.stat() அல்லது Path(file).stat() கோப்பு மெட்டாடேட்டாவை மீட்டெடுக்க.
- குறுக்கு-தளம் இணக்கத்தன்மைக்கு என்ன தொகுதிகள் சிறந்தவை?
- தி pathlib சிறந்த குறுக்கு-தளம் இணக்கத்தன்மைக்கு தொகுதி பரிந்துரைக்கப்படுகிறது.
- அடைவுகளை மட்டும் பட்டியலிடுவது எப்படி?
- பயன்படுத்தவும் os.path.isdir() அல்லது Path(file).is_dir() கோப்பகங்களை வடிகட்ட.
பைத்தானில் அடைவு பட்டியலை மூடுதல்
முடிவில், பைதான் ஒரு கோப்பகத்தில் கோப்புகளை பட்டியலிட பல வழிகளை வழங்குகிறது, அடிப்படை முறைகளைப் பயன்படுத்தி os மற்றும் pathlib இன்னும் மேம்பட்ட நுட்பங்களை உள்ளடக்கிய தொகுதிகள் glob மற்றும் fnmatch. ஒவ்வொரு முறைக்கும் அதன் சொந்த நன்மைகள் உள்ளன, இது வெவ்வேறு பயன்பாட்டிற்கு ஏற்றது. இந்த நுட்பங்களைப் புரிந்துகொள்வது, கோப்பு மேலாண்மைப் பணிகளைத் திறமையாகக் கையாளும் திறனை மேம்படுத்துகிறது, உங்கள் பயன்பாட்டிற்குத் தேவையான கோப்புகளைத் துல்லியமாகப் பட்டியலிடலாம் மற்றும் செயலாக்க முடியும் என்பதை உறுதிப்படுத்துகிறது.