import os
>>>os.getcwd() #获取当前工作路径
>>>'C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310'
>>>os.chdir() #切换工作路径
>>>os.environ #获取全部环境变量
- 获取的环境变量
- 在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置
>>>environ({'ADAMA_GUI_LOCALE': 'Chinese', 'ALLUSERSPROFILE': 'C:\\ProgramData', 'APPDATA': 'C:\\Users\\LX\\AppData\\Roaming', 'AWE_DIR': 'D:\\Program Files (x86)\\Khrona LLC\\Awesomium SDK\\1.6.6\\', 'CLASSPATH': 'D:\\LINGO64_18\\Lingo18.jar', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'COMPUTERNAME': 'LAPTOP-I2E9EJJA', 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe', 'DRIVERDATA': 'C:\\Windows\\System32\\Drivers\\DriverData', 'HOME': 'C:\\Users\\LX', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\\Users\\LX', 'LINGO64_18_HOME': 'D:\\LINGO64_18\\', 'LOCALAPPDATA': 'C:\\Users\\LX\\AppData\\Local', 'LOGONSERVER': '\\\\LAPTOP-I2E9EJJA', 'MAXWELL4_LICENSE_SERVER': 'D:\\Program Files\\Next Limit\\rlm', 'MSCLIC_INI': 'C:\\Program Files\\MSC.Software\\MSC Licensing\\Helium\\msclic.ini', 'MSMPI_BENCHMARKS': 'C:\\Program Files\\Microsoft MPI\\Benchmarks\\', 'MSMPI_BIN': 'C:\\Program Files\\Microsoft MPI\\Bin\\', 'NUMBER_OF_PROCESSORS': '16', 'ONEDRIVE': 'C:\\Users\\LX\\OneDrive', 'ONEDRIVECONSUMER': 'C:\\Users\\LX\\OneDrive', 'OS': 'Windows_NT', 'PATH': 'D:\\ProgramData\\Anaconda3;D:\\ProgramData\\Anaconda3\\Library\\mingw-w64\\bin;D:\\ProgramData\\Anaconda3\\Library\\usr\\bin;D:\\ProgramData\\Anaconda3\\Library\\bin;D:\\ProgramData\\Anaconda3\\Scripts;C:\\Program Files\\Microsoft MPI\\Bin\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\MATLAB\\R2016a\\runtime\\win64;C:\\Program Files\\MATLAB\\R2016a\\bin;C:\\Program Files\\MATLAB\\R2016a\\polyspace\\bin;D:\\Program Files\\Polyspace\\R2020b\\runtime\\win64;D:\\Program Files\\Polyspace\\R2020b\\bin;D:\\Program Files\\Polyspace\\R2020b\\polyspace\\bin;C:\\Program Files (x86)\\Wolfram Research\\WolframScript\\;D:\\LINGO64_18\\;C:\\Users\\LX\\Downloads\\x86_64-8.1.0-release-win32-seh-rt_v6-rev0\\mingw64\\bin;C:\\Users\\LX\\Downloads\\x86_64-8.1.0-release-posix-seh-rt_v6-rev0\\mingw64\\bin;D:\\bin;C:\\Program Files\\Graphviz\\bin;D:\\Git\\cmd;C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\;C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\Scripts\\;C:\\Program Files\\MySQL\\MySQL Shell 8.0\\bin\\;C:\\Users\\LX\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\LX\\AppData\\Local\\GitHubDesktop\\bin;D:\\texlive\\2021\\bin\\win32;C:\\Users\\LX\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'PROCESSOR_IDENTIFIER': 'AMD64 Family 25 Model 80 Stepping 0, AuthenticAMD', 'PROCESSOR_LEVEL': '25', 'PROCESSOR_REVISION': '5000', 'PROGRAMDATA': 'C:\\ProgramData', 'PROGRAMFILES': 'C:\\Program Files', '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', 'SESSIONNAME': 'Console', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\\WINDOWS', 'TEMP': 'C:\\Users\\LX\\AppData\\Local\\Temp', 'TMP': 'C:\\Users\\LX\\AppData\\Local\\Temp', 'USERDOMAIN': 'LAPTOP-I2E9EJJA', 'USERDOMAIN_ROAMINGPROFILE': 'LAPTOP-I2E9EJJA', 'USERNAME': 'LX', 'USERPROFILE': 'C:\\Users\\LX', 'WINDIR': 'C:\\WINDOWS'})
- os.getlogin() 获取控制终端的用户用户名
>>>os.getlogin()
>>>'LX'
>>>os.name
>>>'nt'
#Windows #nt
#Mac OS Linux #posix
>>>os.mkdir("for test")
>>>os.getcwd()
>>>'C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310'
>>>os.chdir("C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test")
>>>os.getcwd()
>>>'C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test'
os.makedirs("test1/trial")
- os.rmdir() 删除空文件夹
- os.removedirs() 递归删除目录 如果成功删除最后一个文件夹,它将继续删除上一级文件夹直到文件夹不为空
>>>os.chdir("C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test")
>>>os.rmdir("test1")
>>>Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
os.rmdir("test1")
OSError: [WinError 145] 目录不是空的。: 'test1'
>>>os.rmdir("trial")
>>>Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
os.rmdir("trial")
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'trial'
>>>os.chdir("C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1")
>>>os.rmdir("trial")
os.chdir("C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1")
os.remove("1.txt")
source = "C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1\\2.txt"
destination = "C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\2.txt"
os.rename(source,destination)
os.path 模块
>>>os.path
>>><module 'ntpath' from 'C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\lib\\ntpath.py'>
- os.path.abspath(path)
- 这并不会检查是否真的存在某个文件或文件夹
- 返回一串path
>>>os.path.abspath("1.txt")
>>>'C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1\\1.txt'
>>>os.path.abspath("Filereceive")
>>>'C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1\\Filereceive'
os.path.exists('C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1\\Filereceive')
False
- os.path.split()
- 返回一个含两个元素的元组
- 包括除最后一个文件(夹)以外的部分和最后一个文件(夹)
- 他并不会检验路径是否真实存在,只是会简单得分割 string[::-1].split("\\")[1:]也能起到差不多的效果
os.path.split("C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1\\3.txt")
('C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1', '3.txt')
os.path.split("C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1\\30.txt")
('C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1', '30.txt')
- os.path.getatime(path)
- 返回该路径最后的访问时间
- 需要使用time模块转换成比较友好的模式
>>>import time
>>>visit_time = os.path.getatime('C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1\\1.txt')
>>>Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
visit_time =
os.path.getatime('C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1\\1.txt')
File "C:\Users\LX\AppData\Local\Programs\Python\Python310\lib\genericpath.py", line 60, in getatime
return os.stat(filename).st_atime
FileNotFoundError: [WinError 2] 系统找不到指定的文件。:
>>>'C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1\\1.txt'
>>>visit_time = os.path.getatime('C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1\\3.txt')
>>>real_time = time.localtime(visit_time)
>>>real_time
>>>time.struct_time(tm_year=2022, tm_mon=9, tm_mday=21, tm_hour=8, tm_min=25, tm_sec=36, tm_wday=2, tm_yday=264, tm_isdst=0)
- os.path.getsize(path) 获取文件大小
>>>os.path.getsize("C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1\\3.txt")
>>>0
- os.path.isfile(path) 判断文件是否存在
- 建议用一个assert语句 这样可能更清晰得得到你想找出的bug 而不是看着一堆代码发呆
>>>os.path.isfile("C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1\\300.txt")
>>>False
>>>assert(os.path.isfile("C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1\\300.txt")),"没这个文件"
>>>Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
assert(os.path.isfile("C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1\\300.txt")),"没这个文件"
AssertionError: 没这个文件
- os.path.isdir(path) 判断文件夹是否存在
>>>os.path.isdir("C:\\Users\\LX\\AppData\\Local\\Programs\\Python\\Python310\\for test\\test1")
>>>True
os.open 模块
- 与open;with open;os.fdopen的关系
- open 需要手动打开和关闭
- with open 不需要手动打开和关闭
- os.open 创建操作系统级文件描述符
- os.fdopen() 从文件描述符中创建一个文件对象
- os.open(path,打开方式)
- 总结 现在用不上。。