Professional Documents
Culture Documents
ماژول os
ماژول os
@PythonForever
)(os.uname
اطدعات مشخصات سلستم عامل را نشان می اهد) .خروجی این متد ار پایتون 2و 3اندکی متفاوت
می باشد( .خروجی این استور ار پایتون ۳به حر زیر می باشد
: sysnameنام سلستم عامل
: nodenameنام هاست ماشی
: releaseنسخه هسته مورا استفااه
: machineمعماری سلستم
: versionنسخه سلستم عامل
)(> os.uname
می خواهلد ملد نام سلستم عامل نشان اهلد به صورت زیر نوشته نکته -اهه قط
]> os.uname()[0
''Linux
)(os.getuid
یوزر آیدی پروسه قعلی را نشان می اهد
)(> os.getuid
999
)(os.getgid
شماره هروه پروسه قعلی را نشان می اهد
)(> os.getgid
999
@PythonForever
)(os.getpid
آیدی پروسه قعلی را نشان می اهد
)(> os.getpid
3571
)(os.getlogin
نام کاربری که اهی کراه است را نشان می اهد
)(> os.getlogin
ubuntu
)(os.getcwd
مس جاری را نشان می اهد
)(> os.getcwd
''/home/ubuntu
)(os.chdir
استفااه می شوا برای تغیل مس
'> path = '/home/ubuntu/test_land
)> os.chdir(path
)(> os.getcwd
''/home/ubuntu/test_land
را اوم مس ار خ اول اارس محلی که قرار است برویم را ار یی متیل ذخ ه کراه ایم .ار خ
تغیل می اهلم و ار خ سوم مس قعلی را چاپ می کنلم
نکته :اهه خواستلم به اایرکتوری پدر یا اایرکتوری قبلی برهرایم نلاز به نوش آارس کامل نداریم و
می تغوانلم بنویسلم
''/home/ubuntu
)> os.chdir(os.pardir
)(os.listdir
برای مشاهده محتویات اایرکتوری قعلی یا اایرکتوری مشخص شده می باشد
)(> os.listdir
خروجی این استور یلس از محتویات اایرکتوری قعلی می باشد .تغوجه کنلد ار صورتغی که به این
تغابع پارامیی پاس اااه نشوا محتویات اایرکتوری قعلی را نشان می اهد
می تغوان این تغابع را با حلطه هم نی نوشت
tester
rm.txt
ls.txt
همچنی برای نشان ااان محتویات اایرکتوری قعلی نی می تغوان از روش های زیر هم استفااه کرا
))(> os.listdir(os.getcwd
یا
)> os.listdir(os.curdir
یا
)'> os.listdir('.
@PythonForever
اهر ملخواهلد محتویات اایرکتوری قبلی نشان اااه شوا می تغوان نوشت
)'> os.listdir('../
یا
)> os.listdir(os.pardir
)'> os.listdir('/usr
]'['bin', 'games', 'include', 'lib', 'local', 'sbin', 'share', 'src
تغابع باا قط محتویات اایرکتوری مشخص شده را نشان اااه و کاری با محتویات اایرکتوری های
ااخل اایرکتوری مشخص شده ندارا .اهر می خواهلد محتویات زیر اایرکتوری ها هم نشان اااه شوند
باید از متد زیر استفااه کنلد
)(os.walk
برای نشان ااان محتویات اایرکتوری قعلی یا اایرکتوری مشخص شده به همراه محتویات زیر
اایرکتوری ها می باشد
این تغابع یی generatorمی باشد که یی تغاپل را yieldمی کند با سه مطدار
dirpath, dirnames, flenames
)(os.mkdir
برای ساخت پوشه استفااه می شوا
)'> os.mkdir('pictures @PythonForever
اهر پوشه از قبل موجوا باشد استلنا FileExistErrorمی اهد
همچنی می تغوان از اارس اهی هم استفااه کرا
)'> os.mkdir(‘/home/ubuntu/pictures
)(os.makedirs
برای ساخت پوشه های تغو ار تغو می باشد
)'> os.makdir(‘1/2/3
ار کد باا پوشه ۳را ار ارون پوشه ۲و پوشه ۲را ار ارون پوشه ، ۱ار اایرکتوری جاری می سازا
ار صورتغی که قصد ااشه باشلد پوشه های تغو ار تغو بسازید ار صورتغی که این پوشه ها از قبل موجوا
باشد یی استلنا رخ می اهد
)'> os.makdir(‘1/2/3
)os.access(path, mode
برای برر موجوا بوان قایل و اایرکتوری و هم چنی مزوز اسی می باشد که اارای مد های زیر
می باشد
: F_OKبرای برر موجوا بوان قایل و اایرکتوری می باشد
: R_OKبرای برر مزوز خواندن می باشد
: X_OKبرای برر مزوز اجرا می باشد
: W_OKبرای برر مزوز نوش می باشد
ار صورتغی که هر قایل یا اایرکتوری اارای آن مزوز باشد یا موجوا باشد مطدار Trueرا برملگرااند
True @PythonForever
)> os.access('ls.txt', os.R_OK
True
True
False
)(os.environ
متیل های محلطی را نشان می اهدکه این متیل ها ار هر سلستم عامل برای اهداف خاص خوا
سلستم یا برنامه های جان تغعریف و مطدار اهی شده اند این تغابع به عنوان
Mapping objectشناخته ملشوا که یی ایکشیی را بر می هرااند که ملد می تغوان نوشت
)'> os.environ.get(‘HOME
''/home/ubuntu
از آنزایی که هفته شد ایکشیی را بر ملگرااند پس می تغوان از ویژهی کللد و مطدار ایکشیی هم
استفااه نموا
)(> os.environ.keys
)(> os.environ.values
نشان اااه شوا کاقلست نوشت مطدار یی متیل اهر می خواهلد قط
]' > os.environ['HOME
]'> os.environ['PWD
''/home/ubuntu
@PythonForever
خروجی هر او استور یکی می باشد
]'> os.environ['SHELL
''/bin/bash
]'> os.environ['TERM
''xterm-256color
اهر متیل ی وجوا نداشته باشه این تغابع ارور می اهد
و مطدار اهی ان را اموزش خواهم ااا ار نسخه های بعدی این اموزش نحوه ساخت متیل
)(os.getenv
مانند environاست با این تغفاوت که اهر متیل ی وجوا نداشت noneرا بر ملگرااند
)(> os.getenv
)(os.rename
برای تغیل نام قایل و اایرکتوری می باشد .ابتدا نام قایل یا اایرکتوری که قرار است اسمش عوض
بشوا را نوشته و سپس نام جدید ان نوشته شوا
)(os.path.exist
برر می کند که آیا قایل یا اایرکتوری موجوا می باشد
@PythonForever
> os.path.exists('/home/ubuntu/test/ls.txt')
True
> os.path.exists('/home/ubuntu/test/back.jpg')
False
os.path.getsize()
سایز قایل و اایرکتوری را به بایت نشان می اهد
> os.path.getsize('vid.ogv')
10666978
os.path.isfle()
را بر می هرااندTrue اهر قایل باشد
> os.path.isfle('vid.ogv')
True
os.path.isfle('pictures_dir')
False
It is a fle @PythonForever
os.path.isdir()
را بر می هرااندTrue اهر اایرکتوری باشد
> os.path.isdir('vid.ogv')
False
os.path.isdir('pictures_dir')
True
It is a directory
os.path.dirname()
اهر مس اااه شده به قایل ختم شوا اارس اایرکتوری های قبل از قایل را بر می هرااند و اهر مس
اااه شده کد اایرکتوری باشد اارس اایرکتوری های قبل از اخرین اایرکتوری را نشان می اهد
> os.path.dirname('/home/ubuntu/test/picture/ls.txt')
'/home/ubuntu/test/picture'
'/home/ubuntu/test'
@PythonForever
os.path.split()
)که اایرکتوری یا قایل است( را از بطله جدا می کند ار مس اااه شده آخرین مس
/home/ubuntu/test/picture - ls.txt
/home/ubuntu/test - picture
اایرکتوری را/اایرکتوری و نام قایل/های مربوط به اارس قایل متیل می تغوان پران: نکته
نگذاشت
ls.txt
به اارس پلدا کرا برای اسی قایل اسی/ار ملال باا می تغوان مستطلما به نام اایرکتوری
نوشت صفر1 اایرکتوی هم ملتوان به جای/قایل
os.path.join()
او یا چند مس را هوشمندانه به هم می چسباند
/home/ubuntu/test/picture
@PythonForever os.path.abspath('.')
paren برای نشان ااان آارس کامل جایی که هستلم می باشد وهمچنی برای نشان ااان اایرکتوی
> os.path.abspath('.')
'/home/ubuntu/test'
/home/ubuntu/test
همچنی اهر نلاز ااشتلم تغا آارس کامل یی قایل یا اایرکتوری را ااشته باشلم تغا ار جاهای ایگر
استفااه بکنلم می تغوانلم بنویسلم
> os.path.abspath('ls.txt')
'/home/ubuntu/test/ls.txt'
os.path.basename()
اااه شده را بر می قایل ار مس/ اارس اخرین اایرکتوی، زمانی که به این تغابع آارس اااه شوا
هرااند
'picture'
ls.txt
@PythonForever os.path.splitext()
اهر نام یی قایل را به این تغابع بدهلم نام قایل و قرمت آن را از هم جدا می کند
)'> os.path.splitext('ls.txt
)'('ls', '.txt
ااشت به صورت زیر همچنی می تغوان مستطلما به نام قایل یا قرمت آن قایل اسی
]> os.path.splitext('ls.txt')[1
''.txt
ملال بلشی
)'('/home/ubuntu/test/ls', '.txt
همان طور که ار آخرین ملال مشاهده می کنلد ار صورتغی که آارس کامل را بدهلد این تغابع کل اارس
و قرمت قایل را از هم جدا می کند ،برای جلوه ی از این کار می تغوانلد بنویسلد
)'('ls', '.txt
ls - .txt
)(os.stat
اطدعاتغی ار رابطه با قایل و اایرکتوری می اهد که به حر زیر می باشد
protection bits : st_mode
inode number : st_ino
@PythonForever device : st_dev
: st_nlinkتغعداا هارا یلنی
: st_uidیوزر آیدی مایی قایل یا اایرکتوری
: st_gidشماره هروه مایی قایل یا اایرکتوری
: st_sizeسایز به بایت نشان اااه
: st_atimeآخرین زمان اسی
: st_mtimeآخرین زمان استکاری
: st_ctimeآخرین زمان تغیل متاایتا
)'> os.stat('ls.txt
را می خواهلد کاقلست مانند زیر عمل کنلد مشخه خا اهر قط
> os.stat('ls.txt').st_size
7962
)(os.path.getmtime
اخرین زمان استکاری قایل و اایرکتوری را نشام می اهد
)'> os.path.getmtime('ls.txt
1551552566.179236
زمان نشان اااه شده خوانا نبواه پس برای خوانا کران می تغوان نوشت
2019-03-02 18:49:26.179236
)(os.system
می تغوان استورات تغرملنال را با استفااه از این تغابع اجرا نموا
@PythonForever
)'> os.system('ls -a
املدوارم تغا به اینزا این آموزش مفلد واقع شده باشد منتظر نسخه بعدی این اموزش باشلد
با تغشکر -ملداقاسمی
@PythonForever