operate system
import os
1,print(os.getcwd())get current working directory 获取当前的工作路径
os.chdir("/Users/") change directory 修改工作路径
以下俩函数都是获取当前工作路径
print(os.getcwd())获取的是绝对路径
print(os.curdir)获取的相对路径
2,修改文件权限 chmod
os.chdir("/Users/musicbear")
r-- 100(4)
rw- 110(6)
os.chmod("1.md", 0o666)
3,cpu的数量cpu_count,常用于决定同时可以使用几个cpu进行多进程编程
①多线程:可以让一个cpu同时干多件事情,看起来仿佛是电脑同时在做多个任务。(并发) ② 多进程:多个cpu同时处理多个事情。(并行)
print(os.cpu_count())
进程:运行起来的软件就被称为一个进程
pid:process id每一个进程都有一个唯一标识号码
ppid: parent process id 获取母进程的id号
print(os.getpid())
print(os.getppid())谁把当前程序运行起来 谁就是它的parent
4,kill通过pid停止程序的运行
os.kill(23590, 13)
5,换行符。在不同系统中 换行符不一样 所以为了兼容不同系统 可以使用
①linesep来换行,linux中他会自动变为\n windows中会变为\r\n
print(os.linesep)
②路径分隔符。在linux中os.sep = / 在windows中os.sep = \\
print(os.sep)
③环境变量分隔符
print(os.pathsep)
5,重点:返回当前目录中的所有文件及文件夹
def scan_files(path):
files = os.listdir(path) 获取path下面所有文件
for f in files: 遍历所有文件
abs_file = path + os.sep + f 通过path +文件拼出文件的绝对路径
if os.path.isdir(abs_file): 判断当前文件是否问文件夹
scan_files(abs_file) 递归打印其内部的子文件
elif os.path.isfile(abs_file): 判断当前文件是否是普通文件
print(abs_file) 如果是打印该文件
else:
print(f"快捷方式:{abs_file}")如果文件类型是快捷方式也打印
scan_files("D:study")
6, ①创建单层级文件夹
os.mkdir("test")
②创建多层级文件夹
os.makedirs("1/2/3/4/5")
③删除文件和文件夹
os.remove("1/2/3/4/5/1.txt")
④只能删除空文件夹
os.removedirs("1/2/3/4/5")
⑤删除指定文件夹无论其中是否有文件
import shutil
shutil.rmtree("/Users/musicbear/imgtest_副本")
7, 执行终端/命令行中的所有命令,操作系统中的所有命令都可以在system函数中以字符串的形式执行
os.system("ls")
os.chdir("..")
os.system("dir")