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

Summarize this content to 400 words in Persian Lang
شما باید از توابع ارائه شده توسط os ماژول در پایتون چندین بار در پروژه های شما. اینها می توانند برای ایجاد یک فایل، راه رفتن در یک فهرست، دریافت اطلاعات در مورد دایرکتوری فعلی، انجام عملیات مسیر و موارد دیگر استفاده شوند.
در این مقاله، ما در مورد توابعی صحبت خواهیم کرد که به اندازه هر تابعی مفید هستند os ماژول اما به ندرت استفاده می شود.
os.path.commonpath()
هنگام کار با چندین فایل که یک ساختار دایرکتوری مشترک دارند، ممکن است بخواهید طولانی ترین مسیر مشترک را پیدا کنید. os.path.commonpath() همین کار را می کند این می تواند هنگام سازماندهی فایل ها یا برخورد با مسیرهای مختلف در محیط ها مفید باشد.
در اینجا یک مثال است:
import os
paths = [‘/user/data/project1/file1.txt’, ‘/user/data/project2/file2.txt’]
common_path = os.path.commonpath(paths)
print(“Common Path:”, common_path)
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این کد مسیر مشترک مشترک این دو مسیر را به ما می دهد.
Common Path: /user/data
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
شما می توانید آن را ببینید os.path.commonpath() فهرستی از نام مسیرها را می گیرد که نوشتن دستی آنها ممکن است غیرعملی باشد.
در این صورت، بهتر است روی همه دایرکتوری ها، زیر شاخه ها و نام فایل ها تکرار شود و سپس به دنبال مسیر مشترک بگردید.
import os
def get_file_paths(directory, file_extension=None):
# Collect all file paths in the directory (and subdirectories, if any)
file_paths = []
for root, dirs, files in os.walk(directory):
for file in files:
if file_extension is None or file.endswith(file_extension):
file_paths.append(os.path.join(root, file))
return file_paths
# Specify the root directory to start from
directory_path = ‘D:/SACHIN/Pycharm/Flask-Tutorial’
# If you want to filter by file extension
file_paths = get_file_paths(directory_path, file_extension=’.html’)
# Find the common path among all files
if file_paths:
common_path = os.path.commonpath(file_paths)
print(“Common Path:”, common_path)
else:
print(“No files found in the specified directory.”)
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
در این مثال تابع get_file_paths() یک دایرکتوری را از بالا به پایین طی می کند و تمام مسیرهای موجود در آن را اضافه می کند file_paths فهرست اگر بخواهیم به دنبال فایل های خاصی باشیم، این تابع به صورت اختیاری یک پسوند فایل می گیرد.
اکنون به راحتی می توانیم مسیر مشترک هر دایرکتوری را پیدا کنیم.
Common Path: D:\SACHIN\Pycharm\Flask-Tutorial\templates
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
os.scandir()
اگر استفاده می کنید os.listdir() برای دریافت محتویات یک فهرست، استفاده از آن را در نظر بگیرید os.scandir() در عوض نه تنها سریعتر است، بلکه باز می گردد DirEntry اشیاء، که اطلاعات مفیدی مانند انواع فایل، مجوزها، و اینکه آیا ورودی یک فایل یا یک دایرکتوری است، ارائه می دهد.
در اینجا یک مثال است:
import os
with os.scandir(‘D:/SACHIN/Pycharm/osfunctions’) as entries:
for entry in entries:
print(f”{entry.name} : \n”
f”>>>> Is File: {entry.is_file()} \n”
f”>>>> Is Directory: {entry.is_dir()}”)
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
در این مثال استفاده کردیم os.scandir() و یک دایرکتوری ارسال کردیم و سپس روی این دایرکتوری تکرار کردیم و اطلاعات را چاپ کردیم.
.idea :
>>>> Is File: False
>>>> Is Directory: True
main.py :
>>>> Is File: True
>>>> Is Directory: False
sample.py :
>>>> Is File: True
>>>> Is Directory: False
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
os.path.splitext()
فرض کنید با فایلها کار میکنید و باید پسوند آنها را بررسی کنید، میتوانید از آن کمک بگیرید os.path.splitext() تابع مسیر فایل را به ریشه و پسوند تقسیم می کند که می تواند به شما در تعیین نوع فایل کمک کند.
import os
filename = ‘report.csv’
root, ext = os.path.splitext(filename)
print(f”Root: {root} \n”
f”Extension: {ext}”)
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
خروجی
Root: report
Extension: .csv
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
به مواردی نگاه کنید که مسیرها می توانند عجیب باشند، در آن زمان چگونه os.path.splitext() کار می کند.
import os
filename = [‘.report’, ‘report’, ‘report.case.txt’, ‘report.csv.zip’]
for idx, paths in enumerate(filename):
root, ext = os.path.splitext(paths)
print(f”{idx} – {paths}\n”
f”Root: {root} | Extension: {ext}”)
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
خروجی
0 – .report
Root: .report | Extension:
1 – report
Root: report | Extension:
2 – report.case.txt
Root: report.case | Extension: .txt
3 – report.csv.zip
Root: report.csv | Extension: .zip
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
os.makedirs()
در حال حاضر یک تابع پرکاربرد وجود دارد که به ما امکان می دهد دایرکتوری ایجاد کنیم. اما وقتی دایرکتوری های تودرتو ایجاد می کنید چه می شود؟
ایجاد دایرکتوری های تو در تو می تواند دردسرساز باشد os.mkdir() زیرا هر بار فقط یک دایرکتوری ایجاد می کند. os.makedirs() به شما این امکان را می دهد که چندین دایرکتوری تودرتو در یک حرکت ایجاد کنید و exist_ok=True آرگومان مطمئن می شود که اگر دایرکتوری از قبل وجود داشته باشد، خطایی ایجاد نمی کند.
import os
os.makedirs(‘project/data/files’, exist_ok=True)
print(“Nested directories created!”)
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
وقتی این برنامه را اجرا می کنیم، دایرکتوری ها و زیر شاخه های مشخصی ایجاد می کند.
Nested directories created!
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اگر دوباره برنامه بالا را اجرا کنیم به دلیل خطای خطا نمی دهد exist_ok=True.
os.replace()
شبیه به os.rename()، os.replace() یک فایل را به مکان جدیدی منتقل می کند، اما با خیال راحت هر فایل موجود را در مقصد بازنویسی می کند. این برای کارهایی مفید است که در آن فایلها را بهروزرسانی یا پشتیبانگیری میکنید و میخواهید مطمئن شوید که فایلهای قدیمی با خیال راحت جایگزین میشوند.
import os
os.replace(src=’main.py’, dst=’new_main.py’)
print(“File replaced successfully!”)
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
در این کد، main.py فایل به تغییر نام می یابد new_main.py درست همانطور که os.rename() عملکرد اما این عملیات مانند آن است که همه یا هیچ چیز را بگیرید. این بدان معناست که جایگزینی فایل در یک مرحله واحد و غیرقابل تقسیم اتفاق می افتد، بنابراین یا کل عملیات با موفقیت انجام می شود یا هیچ چیز تغییر نمی کند.
File replaced successfully!
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
os.urandom()
برای اهداف رمزنگاری، به یک منبع امن از داده های تصادفی نیاز دارید. os.urandom() بایت های تصادفی مناسب برای مواردی مانند تولید شناسه های تصادفی، نشانه ها یا رمزهای عبور تولید می کند. امن تر از random ماژول برای داده های حساس
os.urandom() از تصادفی تولید شده توسط سیستم عامل مورد استفاده شما از منابع مختلف استفاده می کند تا بایت ها (داده ها) را غیرقابل پیش بینی کند.
در ویندوز از آن استفاده می کند BCryptGenRandom() برای تولید بایت های تصادفی
import os
secure_token = os.urandom(16) # 16 bytes of random data
print(“Secure Token:”, secure_token)
#Making it human-readable
print(“Secure Token:”, secure_token.hex())
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
خروجی
Secure Token: b’\x84\xd6\x1c\x1bKB\x7f\xcd\xf6\xb7\xc4D\x92z\xe3{‘
Secure Token: 84d61c1b4b427fcdf6b7c444927ae37b
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
os.path.samefile()
را os.path.samefile() تابع در پایتون برای بررسی اینکه آیا دو مسیر به آن اشاره دارند یا خیر استفاده می شود همان فایل یا دایرکتوری روی سیستم فایل این به ویژه در سناریوهایی که چندین مسیر ممکن است به یک فایل فیزیکی اشاره کنند مفید است، مانند زمانی که با پیوندهای نمادین، پیوندهای سخت یا مسیرهای مطلق و نسبی متفاوت به یک مکان سر و کار داریم.
import os
is_same = os.path.samefile(‘/path/to/file1.txt’, ‘/different/path/to/symlink_file1.txt’)
print(“Are they the same file?”, is_same)
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
os.path.samefile() برای بازگشت طراحی شده است True فقط در صورتی که هر دو مسیر به همان فایل روی دیسک، مانند فایلی که به داده های یکسان در سیستم فایل متصل شده یا به صورت نمادین پیوند دارد.
os.path.relpath()
os.path.relpath() یک تابع محاسباتی است که مسیر نسبی بین دو مسیر را محاسبه می کند. این به ویژه هنگام ساخت مسیرهای فایل به صورت پویا یا کار با واردات نسبی مفید است.
به مثال زیر توجه کنید:
import os
# Target file path
target_path = “D:/SACHIN/Pycharm/osfunctions/project/engine/log.py”
# Starting point
start_path = “D:/SACHIN/Pycharm/osfunctions/project/interface/character/specific.py”
relative_path = os.path.relpath(target_path, start=start_path)
print(relative_path)
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
در این مثال داریم target_path که حاوی مسیری است که باید در آن پیمایش کنیم و start_path شامل مسیری است که از آنجا باید شروع به محاسبه مسیر نسبی کنیم target_path.
وقتی این را اجرا می کنیم، خروجی زیر را دریافت می کنیم.
..\..\..\engine\log.py
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این به این معنی است که ما باید به سه دایرکتوری و سپس پایین برویم engine/log.py.
os.fsync()
وقتی یک فایل رایتینگ را انجام می دهیم (file.write()) عملیات، داده ها فوراً در دیسک ذخیره نمی شوند، در عوض داده ها در بافر سیستم ذخیره می شوند و اگر قبل از نوشتن داده ها روی دیسک، اتفاق غیرمنتظره ای رخ دهد، داده ها از بین می روند.
os.fsync() داده ها را مجبور به نوشتن می کند و یکپارچگی داده ها را تضمین می کند. این به ویژه در ورود به سیستم یا هنگام نوشتن داده های مهمی که نباید از دست بروند مفید است.
import os
with open(‘data.txt’, ‘w’) as f:
f.write(“gibberish!”)
os.fsync(f.fileno()) # Ensures data is written to disk
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
os.fsync(f.fileno()) فراخوانی می شود تا مطمئن شود داده ها بلافاصله روی دیسک نوشته شده و در بافر باقی نمی مانند.
os.fsync() توصیفگر فایل را می گیرد به همین دلیل ما قبول کردیم f.fileno() که یک عدد صحیح منحصر به فرد است که توسط سیستم به فایلی که روی آن کار می کنیم اختصاص داده شده است.
os.get_terminal_size()
اگر در حال ایجاد ابزارهای CLI هستید، فرمت کردن خروجی متناسب با عرض ترمینال می تواند خروجی را تمیزتر کند. os.get_terminal_size() عرض و ارتفاع ترمینال فعلی را به شما می دهد و قالب بندی پویا محتوا را آسان می کند.
import os
size = os.get_terminal_size()
print(f”Terminal Width: {size.columns}, Terminal Height: {size.lines}”)
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
وقتی این کد را در ترمینال اجرا می کنیم، اندازه ترمینالی که این اسکریپت را روی آن اجرا می کنیم، به دست می آید.
PS > py sample.py
Terminal Width: 158, Terminal Height: 12
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
توجه: ممکن است هنگام اجرای مستقیم اسکریپت در IDE که برنامه به ترمینال دسترسی ندارد با خطا مواجه شوید.
🏆اگر این مقاله را دوست داشتید، ممکن است به مقالات دیگری علاقه مند شوید
✅استریم ویدیوها در قسمت جلو در FastAPI.
✅نحوه رفع ایمپورت های دایره ای در پایتون.
✅ارث بری قالب در فلاسک.
✅چگونه از تایپ نکات در پایتون استفاده کنیم؟
✅چگونه ستون های نامتناسب را از مجموعه داده ها در پانداها پیدا و حذف کنیم؟
✅میزان یادگیری چگونه بر مدل های ML و DL تاثیر می گذارد؟
فعلاً همین است.
به کدنویسی ادامه دهید✌✌.
شما باید از توابع ارائه شده توسط os
ماژول در پایتون چندین بار در پروژه های شما. اینها می توانند برای ایجاد یک فایل، راه رفتن در یک فهرست، دریافت اطلاعات در مورد دایرکتوری فعلی، انجام عملیات مسیر و موارد دیگر استفاده شوند.
در این مقاله، ما در مورد توابعی صحبت خواهیم کرد که به اندازه هر تابعی مفید هستند os
ماژول اما به ندرت استفاده می شود.
os.path.commonpath()
هنگام کار با چندین فایل که یک ساختار دایرکتوری مشترک دارند، ممکن است بخواهید طولانی ترین مسیر مشترک را پیدا کنید. os.path.commonpath()
همین کار را می کند این می تواند هنگام سازماندهی فایل ها یا برخورد با مسیرهای مختلف در محیط ها مفید باشد.
در اینجا یک مثال است:
import os
paths = ['/user/data/project1/file1.txt', '/user/data/project2/file2.txt']
common_path = os.path.commonpath(paths)
print("Common Path:", common_path)
این کد مسیر مشترک مشترک این دو مسیر را به ما می دهد.
Common Path: /user/data
شما می توانید آن را ببینید os.path.commonpath()
فهرستی از نام مسیرها را می گیرد که نوشتن دستی آنها ممکن است غیرعملی باشد.
در این صورت، بهتر است روی همه دایرکتوری ها، زیر شاخه ها و نام فایل ها تکرار شود و سپس به دنبال مسیر مشترک بگردید.
import os
def get_file_paths(directory, file_extension=None):
# Collect all file paths in the directory (and subdirectories, if any)
file_paths = []
for root, dirs, files in os.walk(directory):
for file in files:
if file_extension is None or file.endswith(file_extension):
file_paths.append(os.path.join(root, file))
return file_paths
# Specify the root directory to start from
directory_path = 'D:/SACHIN/Pycharm/Flask-Tutorial'
# If you want to filter by file extension
file_paths = get_file_paths(directory_path, file_extension='.html')
# Find the common path among all files
if file_paths:
common_path = os.path.commonpath(file_paths)
print("Common Path:", common_path)
else:
print("No files found in the specified directory.")
در این مثال تابع get_file_paths()
یک دایرکتوری را از بالا به پایین طی می کند و تمام مسیرهای موجود در آن را اضافه می کند file_paths
فهرست اگر بخواهیم به دنبال فایل های خاصی باشیم، این تابع به صورت اختیاری یک پسوند فایل می گیرد.
اکنون به راحتی می توانیم مسیر مشترک هر دایرکتوری را پیدا کنیم.
Common Path: D:\SACHIN\Pycharm\Flask-Tutorial\templates
os.scandir()
اگر استفاده می کنید os.listdir()
برای دریافت محتویات یک فهرست، استفاده از آن را در نظر بگیرید os.scandir()
در عوض نه تنها سریعتر است، بلکه باز می گردد DirEntry
اشیاء، که اطلاعات مفیدی مانند انواع فایل، مجوزها، و اینکه آیا ورودی یک فایل یا یک دایرکتوری است، ارائه می دهد.
در اینجا یک مثال است:
import os
with os.scandir('D:/SACHIN/Pycharm/osfunctions') as entries:
for entry in entries:
print(f"{entry.name} : \n"
f">>>> Is File: {entry.is_file()} \n"
f">>>> Is Directory: {entry.is_dir()}")
در این مثال استفاده کردیم os.scandir()
و یک دایرکتوری ارسال کردیم و سپس روی این دایرکتوری تکرار کردیم و اطلاعات را چاپ کردیم.
.idea :
>>>> Is File: False
>>>> Is Directory: True
main.py :
>>>> Is File: True
>>>> Is Directory: False
sample.py :
>>>> Is File: True
>>>> Is Directory: False
os.path.splitext()
فرض کنید با فایلها کار میکنید و باید پسوند آنها را بررسی کنید، میتوانید از آن کمک بگیرید os.path.splitext()
تابع مسیر فایل را به ریشه و پسوند تقسیم می کند که می تواند به شما در تعیین نوع فایل کمک کند.
import os
filename = 'report.csv'
root, ext = os.path.splitext(filename)
print(f"Root: {root} \n"
f"Extension: {ext}")
خروجی
Root: report
Extension: .csv
به مواردی نگاه کنید که مسیرها می توانند عجیب باشند، در آن زمان چگونه os.path.splitext()
کار می کند.
import os
filename = ['.report', 'report', 'report.case.txt', 'report.csv.zip']
for idx, paths in enumerate(filename):
root, ext = os.path.splitext(paths)
print(f"{idx} - {paths}\n"
f"Root: {root} | Extension: {ext}")
خروجی
0 - .report
Root: .report | Extension:
1 - report
Root: report | Extension:
2 - report.case.txt
Root: report.case | Extension: .txt
3 - report.csv.zip
Root: report.csv | Extension: .zip
os.makedirs()
در حال حاضر یک تابع پرکاربرد وجود دارد که به ما امکان می دهد دایرکتوری ایجاد کنیم. اما وقتی دایرکتوری های تودرتو ایجاد می کنید چه می شود؟
ایجاد دایرکتوری های تو در تو می تواند دردسرساز باشد os.mkdir()
زیرا هر بار فقط یک دایرکتوری ایجاد می کند. os.makedirs()
به شما این امکان را می دهد که چندین دایرکتوری تودرتو در یک حرکت ایجاد کنید و exist_ok=True
آرگومان مطمئن می شود که اگر دایرکتوری از قبل وجود داشته باشد، خطایی ایجاد نمی کند.
import os
os.makedirs('project/data/files', exist_ok=True)
print("Nested directories created!")
وقتی این برنامه را اجرا می کنیم، دایرکتوری ها و زیر شاخه های مشخصی ایجاد می کند.
Nested directories created!
اگر دوباره برنامه بالا را اجرا کنیم به دلیل خطای خطا نمی دهد exist_ok=True
.
os.replace()
شبیه به os.rename()
، os.replace()
یک فایل را به مکان جدیدی منتقل می کند، اما با خیال راحت هر فایل موجود را در مقصد بازنویسی می کند. این برای کارهایی مفید است که در آن فایلها را بهروزرسانی یا پشتیبانگیری میکنید و میخواهید مطمئن شوید که فایلهای قدیمی با خیال راحت جایگزین میشوند.
import os
os.replace(src='main.py', dst='new_main.py')
print("File replaced successfully!")
در این کد، main.py
فایل به تغییر نام می یابد new_main.py
درست همانطور که os.rename()
عملکرد اما این عملیات مانند آن است که همه یا هیچ چیز را بگیرید. این بدان معناست که جایگزینی فایل در یک مرحله واحد و غیرقابل تقسیم اتفاق می افتد، بنابراین یا کل عملیات با موفقیت انجام می شود یا هیچ چیز تغییر نمی کند.
File replaced successfully!
os.urandom()
برای اهداف رمزنگاری، به یک منبع امن از داده های تصادفی نیاز دارید. os.urandom()
بایت های تصادفی مناسب برای مواردی مانند تولید شناسه های تصادفی، نشانه ها یا رمزهای عبور تولید می کند. امن تر از random
ماژول برای داده های حساس
os.urandom()
از تصادفی تولید شده توسط سیستم عامل مورد استفاده شما از منابع مختلف استفاده می کند تا بایت ها (داده ها) را غیرقابل پیش بینی کند.
در ویندوز از آن استفاده می کند BCryptGenRandom()
برای تولید بایت های تصادفی
import os
secure_token = os.urandom(16) # 16 bytes of random data
print("Secure Token:", secure_token)
#Making it human-readable
print("Secure Token:", secure_token.hex())
خروجی
Secure Token: b'\x84\xd6\x1c\x1bKB\x7f\xcd\xf6\xb7\xc4D\x92z\xe3{'
Secure Token: 84d61c1b4b427fcdf6b7c444927ae37b
os.path.samefile()
را os.path.samefile()
تابع در پایتون برای بررسی اینکه آیا دو مسیر به آن اشاره دارند یا خیر استفاده می شود همان فایل یا دایرکتوری روی سیستم فایل این به ویژه در سناریوهایی که چندین مسیر ممکن است به یک فایل فیزیکی اشاره کنند مفید است، مانند زمانی که با پیوندهای نمادین، پیوندهای سخت یا مسیرهای مطلق و نسبی متفاوت به یک مکان سر و کار داریم.
import os
is_same = os.path.samefile('/path/to/file1.txt', '/different/path/to/symlink_file1.txt')
print("Are they the same file?", is_same)
os.path.samefile()
برای بازگشت طراحی شده است True
فقط در صورتی که هر دو مسیر به همان فایل روی دیسک، مانند فایلی که به داده های یکسان در سیستم فایل متصل شده یا به صورت نمادین پیوند دارد.
os.path.relpath()
os.path.relpath()
یک تابع محاسباتی است که مسیر نسبی بین دو مسیر را محاسبه می کند. این به ویژه هنگام ساخت مسیرهای فایل به صورت پویا یا کار با واردات نسبی مفید است.
به مثال زیر توجه کنید:
import os
# Target file path
target_path = "D:/SACHIN/Pycharm/osfunctions/project/engine/log.py"
# Starting point
start_path = "D:/SACHIN/Pycharm/osfunctions/project/interface/character/specific.py"
relative_path = os.path.relpath(target_path, start=start_path)
print(relative_path)
در این مثال داریم target_path
که حاوی مسیری است که باید در آن پیمایش کنیم و start_path
شامل مسیری است که از آنجا باید شروع به محاسبه مسیر نسبی کنیم target_path
.
وقتی این را اجرا می کنیم، خروجی زیر را دریافت می کنیم.
..\..\..\engine\log.py
این به این معنی است که ما باید به سه دایرکتوری و سپس پایین برویم engine/log.py
.
os.fsync()
وقتی یک فایل رایتینگ را انجام می دهیم (file.write()
) عملیات، داده ها فوراً در دیسک ذخیره نمی شوند، در عوض داده ها در بافر سیستم ذخیره می شوند و اگر قبل از نوشتن داده ها روی دیسک، اتفاق غیرمنتظره ای رخ دهد، داده ها از بین می روند.
os.fsync()
داده ها را مجبور به نوشتن می کند و یکپارچگی داده ها را تضمین می کند. این به ویژه در ورود به سیستم یا هنگام نوشتن داده های مهمی که نباید از دست بروند مفید است.
import os
with open('data.txt', 'w') as f:
f.write("gibberish!")
os.fsync(f.fileno()) # Ensures data is written to disk
os.fsync(f.fileno())
فراخوانی می شود تا مطمئن شود داده ها بلافاصله روی دیسک نوشته شده و در بافر باقی نمی مانند.
os.fsync()
توصیفگر فایل را می گیرد به همین دلیل ما قبول کردیم f.fileno()
که یک عدد صحیح منحصر به فرد است که توسط سیستم به فایلی که روی آن کار می کنیم اختصاص داده شده است.
os.get_terminal_size()
اگر در حال ایجاد ابزارهای CLI هستید، فرمت کردن خروجی متناسب با عرض ترمینال می تواند خروجی را تمیزتر کند. os.get_terminal_size()
عرض و ارتفاع ترمینال فعلی را به شما می دهد و قالب بندی پویا محتوا را آسان می کند.
import os
size = os.get_terminal_size()
print(f"Terminal Width: {size.columns}, Terminal Height: {size.lines}")
وقتی این کد را در ترمینال اجرا می کنیم، اندازه ترمینالی که این اسکریپت را روی آن اجرا می کنیم، به دست می آید.
PS > py sample.py
Terminal Width: 158, Terminal Height: 12
توجه: ممکن است هنگام اجرای مستقیم اسکریپت در IDE که برنامه به ترمینال دسترسی ندارد با خطا مواجه شوید.
🏆اگر این مقاله را دوست داشتید، ممکن است به مقالات دیگری علاقه مند شوید
✅استریم ویدیوها در قسمت جلو در FastAPI.
✅نحوه رفع ایمپورت های دایره ای در پایتون.
✅ارث بری قالب در فلاسک.
✅چگونه از تایپ نکات در پایتون استفاده کنیم؟
✅چگونه ستون های نامتناسب را از مجموعه داده ها در پانداها پیدا و حذف کنیم؟
✅میزان یادگیری چگونه بر مدل های ML و DL تاثیر می گذارد؟
فعلاً همین است.
به کدنویسی ادامه دهید✌✌.