وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

نام فایل را از مسیر برای هر سیستم عاملی در پایتون دریافت کنید

0 12
زمان لازم برای مطالعه: 3 دقیقه


معرفی

یکی از چالش هایی که ممکن است هنگام کار با مسیرهای فایل با آن مواجه شوید استخراج نام فایل از مسیر است که بسته به سیستم عامل و فرمت مسیر می تواند متفاوت باشد.

در این بایت، چگونگی حل این مشکل را با استفاده از داخلی پایتون بررسی خواهیم کرد os.path مدول. همچنین روش مدیریت فرمت های مسیرهای مختلف مورد استفاده در سیستم عامل های ویندوز و سبک یونیکس را بررسی خواهیم کرد.

با استفاده از مسیر os ماژول در پایتون

پایتون os.path ماژول مجموعه ای از توابع را برای دستکاری مسیرهای فایل ارائه می دهد. یکی از این توابع است basename()، که آخرین مؤلفه نام مسیر را که معمولاً نام فایل است برمی گرداند.

بیایید ببینیم چگونه کار می کند:

import os

path = '/home/user/documents/file.txt'
filename = os.path.basename(path)
print(filename)

در این حالت خروجی به صورت زیر خواهد بود:

file.txt

را basename() تابع با تقسیم مسیر در آخرین اسلش (/) و برگرداندن قطعه بعد از آن. این بدون در نظر گرفتن اینکه آیا مسیر با یک اسلش به پایان می رسد کار می کند.

را os.path توابع ماژول برای استفاده با مسیرهایی با فرمت مورد استفاده توسط سیستم عاملی که کد پایتون شما در آن اجرا می شود، طراحی شده است. این بدان معناست که اگر با مسیرهایی از یک سیستم عامل دیگر کار می کنید، ممکن است با مشکلاتی مواجه شوید. به عنوان مثال، اگر کد شما روی یک سیستم عامل یونیکس اجرا می شود، ممکن است در تجزیه یک مسیر ویندوز مشکلاتی داشته باشد.

پیشنهاد می‌کنیم بخوانید:  آیتم را به جلوی لیست در پایتون اضافه کنید

برخورد با مسیرهای فایل ویندوز

مسیرهای فایل ویندوز ممکن است کمی مشکل باشد زیرا از بک اسلش استفاده می کنند (\) به جای اسلش (/). اگر با مسیرهای ویندوز در پایتون کار می کنید، باید با استفاده از بک اسلش های دوبل از بک اسلش ها فرار کنید (\\، یا با استفاده از رشته های خام (r'path\to\file').

در اینجا روش استخراج نام فایل از مسیر ویندوز با استفاده از os.path مدول:

import os

path = 'C:\\Users\\user\\Documents\\file.txt'
filename = os.path.basename(path)
print(filename)

و خروجی این خواهد بود:

file.txt

برخورد با مسیرهای فایل به سبک یونیکس

مسیرهای فایل به سبک یونیکس که توسط لینوکس و macOS استفاده می شود، از اسلش استفاده می کنند (/). این کار کار با آنها را در پایتون کمی آسان تر می کند.

در اینجا مثالی از روش استخراج نام فایل از مسیری به سبک یونیکس آورده شده است:

import os

path = '/home/user/documents/file.txt'
filename = os.path.basename(path)
print(filename)

و مانند قبل، خروجی به صورت زیر خواهد بود:

file.txt

مدیریت کاراکترهای خاص در نام فایل ها

هنگام کار با مسیرهای فایل، ممکن است با کاراکترهای خاصی در نام فایل ها برخورد کنید. این کاراکترها در صورت عدم استفاده صحیح می توانند مشکل ساز شوند. خوشبختانه پایتون os.path ماژول ابزارهایی را در اختیار ما قرار می دهد که برای مدیریت موثر این کاراکترهای خاص نیاز داریم.

فرض کنید یک مسیر فایل با کاراکترهای خاص مانند زیر داریم:

path = "/home/user/Documents/My\ Project\ #1/file.txt"

در این مورد، بک اسلش ها (\) برای فرار از فضاها و نماد هش (#). اگر بخواهیم بدون در نظر گرفتن این کاراکترهای خاص نام فایل را از این مسیر استخراج کنیم، ممکن است به نتیجه نادرستی برسیم.

پیشنهاد می‌کنیم بخوانید:  Local و متغیرهای جهانی در پایتون

برای رسیدگی به این، می توانیم از os.path.basename() عملکرد همراه با raw به معنای واقعی کلمه (r). را r پیشوند قبل از string literal رشته معمولی را به یک رشته خام تبدیل می کند. در یک رشته خام، بک اسلش (\) به عنوان شخصیت های تحت اللفظی و نه به عنوان شخصیت های فرار در نظر گرفته می شوند.

در اینجا روش انجام این کار آمده است:

import os

path = r"/home/user/Documents/My\ Project\ #1/file.txt"
filename = os.path.basename(path)

print(filename)  

در این مثال، basename() تابع به درستی شناسایی می کند file.txt به عنوان نام فایل، علیرغم وجود کاراکترهای خاص در مسیر.

توجه داشته باشید: هنگام کار با مسیرهای فایل در پایتون، همیشه ایده خوبی است که از رشته های خام استفاده کنید (r) برای جلوگیری از مشکلات شخصیت های فرار.

نتیجه

در این بایت، روش استخراج نام فایل ها از مسیرهای فایل در پایتون، بدون توجه به سیستم عامل یا فرمت مسیر را دیده ایم. ما روش استفاده از آن را بررسی کرده ایم os.path ماژول برای مدیریت مسیرهای فایل به سبک ویندوز و یونیکس. ما همچنین روش استفاده از کاراکترهای خاص در نام فایل‌ها را دیده‌ایم تا از بروز خطاهای سخت در هنگام کار با این نوع فایل‌ها جلوگیری کنیم.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1402-12-28 01:08:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید