命令行工具、Shell腳本、系統管理
映射python運行時操作系統,完成操作系統的工作
import sysprint(dir(sys))
from pprint import pprintpprint(dir(sys))
import sysprint(sys.platform)print(sys.version)## 簡單的列表告訴我們路徑print(sys.path)
win32
3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 22:20:52) [MSC v.1916 32 bit (Intel)]
[‘F:\teacher\pythonbasetry\day10’, ‘F:\teacher\pythonbasetry’, ‘C:\Users\97501\AppData\Local\JetBrains\Toolbox\apps\PyCharm-P\ch-0\192.7142.42\helpers\pycharm_display’, ‘D:\python\python37.zip’, ‘D:\python\DLLs’, ‘D:\python\lib’, ‘D:\python’, ‘D:\python\lib\site-packages’, ‘C:\Users\97501\AppData\Local\JetBrains\Toolbox\apps\PyCharm-P\ch-0\192.7142.42\helpers\pycharm_matplotlib_backend’]
最后一個異常具體信息:類型、對象、回溯對象
打印回溯信息列表
import tracebacktry: raise KeyErrorexcept: ## 異常信息:類型,消息,回溯對象 print(sys.exc_info()) traceback.print_tb(sys.exc_info()[2])
(<class ‘KeyError’>, KeyError(), <traceback object at 0x03373350>)
File “F:/teacher/pythonbasetry/day10/init.py”, line 26, in
raise KeyError
import sysdef add(): a = 5 b = 3 return a + bprint(add())print(sys.argv)print(sys.argv[0])print(sys.argv[1])print(sys.argv[2])
cmd
import sysdef add(a,b): return a + ba = 0b = 0if sys.argv[1]: a = int(sys.argv[1])if sys.argv[2]: b = int(sys.argv[2])print(add(a,b))
cmd
>>>import sys>>>sys.stdout.write('Hello')Hello5>>>print('輸入');sys.stdin.readline()[:]輸入>? python>>>print('輸入');x = sys.stdin.readline()[:]輸入>? python>>>x'python\n'>>>sys.stderr.write('mistake')mistake7
跨平臺可移植操作系統接口
>>>import os>>>os.environenviron({'ALLUSERSPROFILE': 'C:\\ProgramData', 'APPDATA': 'C:\\Users\\97501\\AppData\\Roaming', 'COMMONPROGRAMFILES': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'COMPUTERNAME': 'DESKTOP-MG006HV', 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe', 'DRIVERDATA': 'C:\\Windows\\System32\\Drivers\\DriverData', 'FPS_BROWSER_APP_PROFILE_STRING': 'Internet Explorer', 'FPS_BROWSER_USER_PROFILE_STRING': 'Default', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\\Users\\97501', 'IDEA_INITIAL_DIRECTORY': 'C:\\Users\\97501\\AppData\\Local\\JetBrains\\Toolbox\\apps\\PyCharm-P\\ch-0\\192.7142.42\\bin', 'IPYTHONENABLE': 'True', 'LOCALAPPDATA': 'C:\\Users\\97501\\AppData\\Local', 'LOGONSERVER': '\\\\DESKTOP-MG006HV', 'NUMBER_OF_PROCESSORS': '12', 'ONEDRIVE': 'C:\\Users\\97501\\OneDrive', 'ONEDRIVECONSUMER': 'C:\\Users\\97501\\OneDrive', 'OS': 'Windows_NT', 'PATH': 'C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\iCLS\\;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\iCLS\\;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\IPT;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\IPT;C:\\Program Files\\Intel\\WiFi\\bin\\;C:\\Program Files\\Common Files\\Intel\\WirelessCommon\\;D:\\python;E:\\matlab\\MATLAB anzhuang\\runtime\\win64;E:\\matlab\\MATLAB anzhuang\\bin;%SystemRoot%\\system32;%SystemRoot%;%SystemRoot%\\System32\\Wbem;%SYSTEMROOT%\\System32\\WindowsPowerShell\\v1.0\\;%SYSTEMROOT%\\System32\\OpenSSH\\;C:\\Users\\97501\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\97501\\Anaconda3;C:\\Users\\97501\\Anaconda3\\Scripts;', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'PROCESSOR_ARCHITECTURE': 'x86', 'PROCESSOR_ARCHITEW6432': 'AMD64', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 158 Stepping 10, GenuineIntel', 'PROCESSOR_LEVEL': '6', 'PROCESSOR_REVISION': '9e0a', 'PROGRAMDATA': 'C:\\ProgramData', 'PROGRAMFILES': 'C:\\Program Files (x86)', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'PROGRAMW6432': 'C:\\Program Files', 'PSMODULEPATH': 'C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules', 'PUBLIC': 'C:\\Users\\Public', 'PYCHARM_DISPLAY_PORT': '63342', 'PYCHARM_HOSTED': '1', 'PYCHARM_MATPLOTLIB_INDEX': '0', 'PYCHARM_MATPLOTLIB_INTERACTIVE': 'true', 'PYDEVD_LOAD_VALUES_ASYNC': 'True', 'PYTHONIOENCODING': 'UTF-8', 'PYTHONPATH': 'C:\\Users\\97501\\AppData\\Local\\JetBrains\\Toolbox\\apps\\PyCharm-P\\ch-0\\192.7142.42\\helpers\\pycharm_matplotlib_backend;C:\\Users\\97501\\AppData\\Local\\JetBrains\\Toolbox\\apps\\PyCharm-P\\ch-0\\192.7142.42\\helpers\\pycharm_display;C:\\Users\\97501\\AppData\\Local\\JetBrains\\Toolbox\\apps\\PyCharm-P\\ch-0\\192.7142.42\\helpers\\third_party\\thriftpy;C:\\Users\\97501\\AppData\\Local\\JetBrains\\Toolbox\\apps\\PyCharm-P\\ch-0\\192.7142.42\\helpers\\pydev', 'PYTHONUNBUFFERED': '1', 'SESSIONNAME': 'Console', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\\WINDOWS', 'TEMP': 'C:\\Users\\97501\\AppData\\Local\\Temp', 'TMP': 'C:\\Users\\97501\\AppData\\Local\\Temp', 'USERDOMAIN': 'DESKTOP-MG006HV', 'USERDOMAIN_ROAMINGPROFILE': 'DESKTOP-MG006HV', 'USERNAME': '97501', 'USERPROFILE': 'C:\\Users\\97501', 'WINDIR': 'C:\\WINDOWS'})
獲取當前工作目錄
列舉目錄內容
改變工作目錄
獲取當前進程ID
獲取當前父進程ID
>>>import os >>>os.environenviron({'ALLUSERSPROFILE': 'C:\\ProgramData', 'APPDATA': 'C:\\Users\\97501\\AppData\\Roaming', 'COMMONPROGRAMFILES': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'COMPUTERNAME': 'DESKTOP-MG006HV', 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe', 'DRIVERDATA': 'C:\\Windows\\System32\\Drivers\\DriverData', 'FPS_BROWSER_APP_PROFILE_STRING': 'Internet Explorer', 'FPS_BROWSER_USER_PROFILE_STRING': 'Default', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\\Users\\97501', 'IDEA_INITIAL_DIRECTORY': 'C:\\Users\\97501\\AppData\\Local\\JetBrains\\Toolbox\\apps\\PyCharm-P\\ch-0\\192.7142.42\\bin', 'IPYTHONENABLE': 'True', 'LOCALAPPDATA': 'C:\\Users\\97501\\AppData\\Local', 'LOGONSERVER': '\\\\DESKTOP-MG006HV', 'NUMBER_OF_PROCESSORS': '12', 'ONEDRIVE': 'C:\\Users\\97501\\OneDrive', 'ONEDRIVECONSUMER': 'C:\\Users\\97501\\OneDrive', 'OS': 'Windows_NT', 'PATH': 'C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\iCLS\\;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\iCLS\\;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\IPT;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\IPT;C:\\Program Files\\Intel\\WiFi\\bin\\;C:\\Program Files\\Common Files\\Intel\\WirelessCommon\\;D:\\python;E:\\matlab\\MATLAB anzhuang\\runtime\\win64;E:\\matlab\\MATLAB anzhuang\\bin;%SystemRoot%\\system32;%SystemRoot%;%SystemRoot%\\System32\\Wbem;%SYSTEMROOT%\\System32\\WindowsPowerShell\\v1.0\\;%SYSTEMROOT%\\System32\\OpenSSH\\;C:\\Users\\97501\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\97501\\Anaconda3;C:\\Users\\97501\\Anaconda3\\Scripts;', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'PROCESSOR_ARCHITECTURE': 'x86', 'PROCESSOR_ARCHITEW6432': 'AMD64', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 158 Stepping 10, GenuineIntel', 'PROCESSOR_LEVEL': '6', 'PROCESSOR_REVISION': '9e0a', 'PROGRAMDATA': 'C:\\ProgramData', 'PROGRAMFILES': 'C:\\Program Files (x86)', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'PROGRAMW6432': 'C:\\Program Files', 'PSMODULEPATH': 'C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules', 'PUBLIC': 'C:\\Users\\Public', 'PYCHARM_DISPLAY_PORT': '63342', 'PYCHARM_HOSTED': '1', 'PYCHARM_MATPLOTLIB_INDEX': '0', 'PYCHARM_MATPLOTLIB_INTERACTIVE': 'true', 'PYDEVD_LOAD_VALUES_ASYNC': 'True', 'PYTHONIOENCODING': 'UTF-8', 'PYTHONPATH': 'C:\\Users\\97501\\AppData\\Local\\JetBrains\\Toolbox\\apps\\PyCharm-P\\ch-0\\192.7142.42\\helpers\\pycharm_matplotlib_backend;C:\\Users\\97501\\AppData\\Local\\JetBrains\\Toolbox\\apps\\PyCharm-P\\ch-0\\192.7142.42\\helpers\\pycharm_display;C:\\Users\\97501\\AppData\\Local\\JetBrains\\Toolbox\\apps\\PyCharm-P\\ch-0\\192.7142.42\\helpers\\third_party\\thriftpy;C:\\Users\\97501\\AppData\\Local\\JetBrains\\Toolbox\\apps\\PyCharm-P\\ch-0\\192.7142.42\\helpers\\pydev', 'PYTHONUNBUFFERED': '1', 'SESSIONNAME': 'Console', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\\WINDOWS', 'TEMP': 'C:\\Users\\97501\\AppData\\Local\\Temp', 'TMP': 'C:\\Users\\97501\\AppData\\Local\\Temp', 'USERDOMAIN': 'DESKTOP-MG006HV', 'USERDOMAIN_ROAMINGPROFILE': 'DESKTOP-MG006HV', 'USERNAME': '97501', 'USERPROFILE': 'C:\\Users\\97501', 'WINDIR': 'C:\\WINDOWS'})>>>os.getcwd()'F:\\teacher\\pythonbasetry'>>>os.listdir()['.idea', '1_hello.py', '1_result.py', 'day1', 'day10', 'day11', 'day2', 'day3', 'day4', 'day5', 'day6', 'day7', 'day8', 'day9']>>>os.chdir('day11')>>>os.getcwd()'F:\\teacher\\pythonbasetry\\day11'>>>os.listdir()['__init__.py']>>>os.listdir(r'F:')['__init__.py']>>>os.getpid()47348>>>os.getppid()41564
python腳本運行shell命令
運行+連接輸入輸出流
import osos.popen('dir /b')<os._wrap_close object at 0x04388A70>os.popen('1_hello.py')<os._wrap_close object at 0x012331B0>text = os.popen('dir /b').read()text'.idea\n1_hello.py\n1_result.py\nday1\nday10\nday11\nday2\nday3\nday4\nday5\nday6\nday7\nday8\nday9\n'Traceback (most recent call last): File "F:\teacher\pythonbasetry\1_hello.py", line 1, in <module> print("hello")OSError: [Errno 22] Invalid argumentresults = os.popen('1_hello.py').readlines()results['hello\n']print(results)['hello\n']
創建目錄
刪除目錄
改名
刪除文件
import os#當前工作目錄print(os.getcwd())#創建目錄os.mkdir('test')print(os.listdir())#進入子目錄os.chdir('test')print(os.getcwd())print(os.listdir())#創建文件open('info11.txt','w',encoding='utf8').write('hello')print(os.listdir())#重命名文件os.rename('info11.txt','try.txt')print(os.listdir())#移除文件os.remove('try.txt')#返回上一級os.chdir('..')print(os.getcwd())#刪除目錄os.rmdir('test')
D:\python\python.exe F:/teacher/pythonbasetry/day11/init.py
F:\teacher\pythonbasetry\day11
F:\teacher\pythonbasetry\day11\test
[]
[‘info11.txt’]
[‘try.txt’]
F:\teacher\pythonbasetry\day11
分隔符
路徑分隔符
相對當前目錄符號
相對上級目錄符號
import os#典型分隔符print(os.sep)#路徑分隔符,一批路徑操作時連接多個路徑print(os.pathsep)#相對目錄#父目錄print(os.curdir)print(os.pardir)
D:\python\python.exe F:/teacher/pythonbasetry/day11/copy.py
;
.
…
Process finished with exit code 0
提供文件和目錄的可移植編程接口
是否目錄
是否文件
是否存在
拆分路徑
拆分路徑擴展名
連接路徑
標準化路徑
import osprint(os.getcwd())print(os.listdir())#判斷是否目錄os.path.isdir(r'f:\teacher')#存在的目錄判斷是否目錄print(os.path.isdir(r'f:\teacher'))#不存在的目錄判斷是否目錄print(os.path.isdir(r'f:teacherteacher'))#判斷是否文件print(os.path.isfile(r'F:\teacher\pythonbasetry\day11\PATH.py'))#判斷是否存在print(os.path.exists(r'f:\teacher'))#大小,單位字節print(os.path.getsize(r'F:\teacher\pythonbasetry\day11\PATH.py'))#切割路徑print(os.path.split(r'F:\teacher\pythonbasetry\day11\PATH.py'))name = r'F:\teacher\pythonbasetry\day11\PATH.py'print(os.path.dirname(name))print(os.path.basename(name))print(os.path.splitext(name))#連接路徑joint = os.path.join(r'f:\base','try.py')print(joint)print(os.sep)print(os.path.split(name))print(name.split(os.sep))#轉換成符合當前操作系統標準p = 'F:\\teacher\\pythonbasetry/day11/PATH.py'print(p)Normal = os.path.normpath(p)print(Normal)#當前路徑轉換成絕對路徑print(os.getcwd())relative = os.path.abspath('..')print(relative)
D:\python\python.exe F:/teacher/pythonbasetry/day11/PATH.py
F:\teacher\pythonbasetry\day11
[‘copy.py’, ‘PATH.py’, ‘init.py’]
True
False
True
True
1129
(‘F:\teacher\pythonbasetry\day11’, ‘PATH.py’)
F:\teacher\pythonbasetry\day11
PATH.py
(‘F:\teacher\pythonbasetry\day11\PATH’, ‘.py’)
f:\base\try.py
(‘F:\teacher\pythonbasetry\day11’, ‘PATH.py’)
[‘F:’, ‘teacher’, ‘pythonbasetry’, ‘day11’, ‘PATH.py’]
F:\teacher\pythonbasetry/day11/PATH.py
F:\teacher\pythonbasetry\day11\PATH.py
F:\teacher\pythonbasetry\day11
F:\teacher\pythonbasetry