Python学习笔记-常用模块介绍--os与sys函数

1.os的基本使用

  • print(os.getcwd())  # 获取当前文件的路径
    print(os.makedirs("a/b/c")) # 创建文件夹 # 可以递归创建
    os.removedirs("a")  # 只能删除空的文件夹 OSError: [WinError 145] 目录不是空的。: 'a'
    os.removedirs("a/b/c")
    print(os.listdir("."))  # 列出当前文件的内容
    print(os.listdir(".."))  # 列出上层的文件的内容
    
    print(os.stat("测试正则匹配.py")) # 查看文件的状态
    print(os.stat("测试正则匹配.py").st_size) # 查看文件的状态
    print(os.path.getsize("测试正则匹配.py")) # 单位是字节
    
    print(os.name)  # 显示操作系统的名字 # windows叫 nt ; linux叫 posix
    
    print(os.system("tasklist"))    # 会乱码,建议用subprocess
    
    print(os.environ)  # 获取系统环境变量,是个字典,可以增加
    os.environ["name"] = "liqi" # 添加
    print(os.environ["name"])   # 取出来
    print(os.environ)
    # 可以用在有些变量需要跨文件获取。暂时没看明白怎么用

     

 2.os的path系列使用

  • print(os.path.abspath("a/b/c")) # 规范化目录
    # C:\code\0116\a\b\c
    print(os.path.split(r"C:\code\0116\a\b\c\t.txt"))   # 可以被下面dirname和basename取代
    # ('C:\\code\\0116\\a\\b\\c', 't.txt')
    
    print(os.path.dirname(r"C:\code\0116\a\b\c\t.txt"))     # C:\code\0116\a\b\c
    print(os.path.basename(r"C:\code\0116\a\b\c\t.txt"))    # t.txt

     

  • print(os.path.exists(r"C:\code\0116\t.txt"))    # 判断文件的存在 False
    print(os.path.isabs(r"C:\code\0116\t.txt")) # 判断路径是否是绝对路径
    
    print(os.path.join("D:","a","t.txt"))   # 拼接路径

     

4.工作中最看中的是你解决问题的能力

  • 实际公司,考虑一个新的技术,会让你研究。
  • 再派一些基础的活给你,(让你有产出,在这几天)。
  • 最后会让你出一个关于这个技术的情况说明。

5.os的路径问题

  • # 需求:找到当前文件的上上级
    print(__file__) # :\code\0116\练习os模块.py
    print(os.path.dirname(os.path.dirname(__file__)))   #  方式一 C:\code
    print(os.path.normpath(os.path.join(__file__,"..","..")))   # 方式二 C:\code

     

6.sys.argv的基本使用

  • 可以拿到终端输入的多个参数
  • import sys
    
    print(sys.argv) # 背后的事情是 python C:\\code\\0116\\sys的练习.py
    # ['C:\\code\\0116\\sys的练习.py']

     

  •  

     

7.如何用sys.argv知识点,改写复制文件的小工具,使其在终端可以一行搞定?

  • 原来
  • src = input("源文件地址")
    dst = input("目标地址")
    
    with open(src,mode="rb") as f1,open(dst,mode="wb") as f2:
        for line in f1: # 这里写f1.readlines()也可以,写f1.read()是错误的。
            f2.write(line)

     

  • 改写后:
  • import sys
    # 需求:在终端一行搞定
    src = sys.argv[1]
    dst = sys.argv[2]
    
    with open(src,mode="rb") as f1,open(dst,mode="wb") as f2:
        for line in f1:
            f2.write(line)
    
    # 终端执行 python .\copy_file.py .\001.py .\005.py

     

  • 效果:

 

 

 8.(扩展)sys的其他使用 

1 sys.argv           命令行参数List,第一个元素是程序本身路径
2 sys.exit(n)        退出程序,正常退出时exit(0)
3 sys.version        获取Python解释程序的版本信息
4 sys.maxint         最大的Int值
5 sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
6 sys.platform       返回操作系统平台名称

 

 9.sys.platform查看操作系统平台

  • print(sys.platform) # win32 linux

     

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

参考资料:https://www.cnblogs.com/linhaifeng/articles/6384466.html#_label3

 

posted @ 2023-01-16 17:09  o蹲蹲o  阅读(31)  评论(0编辑  收藏  举报