2. python os模块
2. python os模块
1.文件和目录操作
1)os.listdir(path) 列出指定目录下的所有文件和子目录。
import os
files_and_dirs = os.listdir("/home/user")
print(files_and_dirs)
2)os.mkdir(path,mode=0o777) 创建一个目录
os.mkdir("/home/user/newdir", mode=0o755)
3)os.makedirs(path,mode=0o777,exist_ok=False) 递归创建多级目录。
os.makedirs("/home/user/newdir/subdir", exist_ok=True)
4)os.rmdir(path) 删除一个空目录
os.rmdir("/home/user/newdir")
5)os.removedirs(path) 递归删除空目录
os.removedirs("/home/user/newdir/subdir")
6)os.rename(src,dst) 重命名文件或目录
os.rename("/home/user/oldname.txt", "/home/user/newname.txt")
7)os.remove(path) 删除文件
os.remove("/home/user/file.txt")
6)os.chmod(path,mode) 修改文件或目录的权限
os.chmod("/home/user/file.txt", 0o755)
7)os.chown(path,uid,gid) 修改文件或目录的所有者
os.chown("/home/user/file.txt", 1000, 1000)
8)os.symlink(src,dst) 创建符号链接
os.symlink("/home/user/file.txt", "/home/user/link.txt")
9)os.readlink(path) 获取符号链接的目标路径
target = os.readlink("/home/user/link.txt")
print(target)
2.文件属性和状态
1)os.path.exists(path) 检查路径是否存在
if os.path.exists("/home/user/file.txt"):
print("File exists")
2)os.path.isfile(path) 检查路径是否是普通文件
if os.path.isfile("/home/user/file.txt"):
print("It's a file")
3)os.path.isdir(path) 检查路径目录是否存在
if os.path.isdir("/home/user"):
print("It's a directory")
4)os.path.getsize(path) 获取文件大小(字节)
size = os.path.getsize("/home/user/file.txt")
print(f"File size: {size} bytes")
5)os.path.getmtime(path) 获取文件最后修改的时间(时间戳)
import time
mtime = os.path.getmtime("/home/user/file.txt")
print(time.ctime(mtime))
3.环境变量和路径的操作
1)os.environ 获取环境变量。
home_dir = os.environ.get("HOME")
print(home_dir)
2)os.path.join(path,*paths) 安全的拼接路径
full_path = os.path.join("/home", "user", "file.txt")
print(full_path)
3)os.path.abspath(path) 获取路径的绝对路径
abs_path = os.path.abspath("file.txt")
print(abs_path)
4)os.path.basename(path) 获取路径中的文件名部分
filename = os.path.basename("/home/user/file.txt")
print(filename)
5)os.path.dirname(path) 获取路径中的目录部分
dirname = os.path.dirname("/home/user/file.txt")
print(dirname)
4.进程和系统操作
1)os.system(command) 执行系统命令
os.system("ls -l")
2)os.fork() 创建子进程
pid = os.fork()
if pid == 0:
print("Child process")
else:
print("Parent process")
3)os.kill(pid,sig) 发送信号到进程
os.kill(pid, signal.SIGTERM)
4)os.wait() 等待子进程结束
os.fork()
os.wait()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通