进阶学Python:Python的os模块和sys模块! | 八月更文挑战

1,116 阅读6分钟

这是我参与8月更文挑战的第21天,活动详情查看:8月更文挑战

前言

三毛曾经感慨:

“心之何如,有似万丈迷津,横亘千里,其中并无舟子可以渡人,除了自渡,他人爱莫能助。” ——生命的洪流中,终其一生,我们都在学会怎么做自己的摆渡人。

关于安装和汉化可以观看博主的这篇文章《VsCode下载安装及汉化 》以及Python系列:windows10配置Python3.0开发环境!,安装完毕重启VsCode!


Come on!os模块

os模块 主要用于与操作系统打交道,Python 中的 os模块 包含普遍的操作系统功能,即如果你希望你的程序与操作系统平台无关,那么 os模块 就尤为重要。其方法如下

  • os.getcwd()   获取当前工作目录,即当前python脚本工作的目录路径
  • os.chdir("dirname")    改变当前脚本工作目录;相当于shell下cd
  • os.curdir   返回当前目录: ('.')
  • os.pardir   获取当前目录的父目录字符串名:('..')
  • os.makedirs('dirname1/dirname2')   可生成多层递归目录
  • os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
  • os.mkdir('dirname')   生成单级目录;相当于shell中mkdir dirname
  • os.rmdir('dirname')   删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
  • os.listdir('dirname')   列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
  • os.remove()   删除一个文件
  • os.rename("oldname","newname")   重命名文件/目录
  • os.stat('path/filename')   获取文件/目录信息
  • os.sep   输出操作系统特定的路径分隔符,win下为"\",Linux下为"/"
  • os.linesep   输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
  • os.pathsep   输出用于分割文件路径的字符串 win下为;,Linux下为:
  • os.name   输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
  • os.system("bash command")   运行shell命令,直接显示
  • os.environ   获取系统环境变量
  • os.path.abspath(path)   返回path规范化的绝对路径
  • os.path.split(path)   将path分割成目录和文件名二元组返回
  • os.path.dirname(path)   返回path的目录。其实就是os.path.split(path)的第一个元素
  • os.path.basename(path)   返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
  • os.path.exists(path)   如果path存在,返回True;如果path不存在,返回False
  • os.path.isabs(path)   如果path是绝对路径,返回True
  • os.path.isfile(path)   如果path是一个存在的文件,返回True。否则返回False
  • os.path.isdir(path)   如果path是一个存在的目录,则返回True。否则返回False
  • os.path.join(path1[, path2[, ...]])   将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
  • os.path.getatime(path)   返回path所指向的文件或者目录的最后存取时间
  • os.path.getmtime(path)   返回path所指向的文件或者目录的最后修改时间

下列代码最好是去 cmd(命令指示符) 里面试试

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@File    :   osdemo.py
@Time    :   2019/10/21 10:34:18
@Author  :   YongJia Chen 
@Version :   1.0
@Contact :   chen867647213@163.com
@License :   (C)Copyright 2018-2019, Liugroup-NLPR-CASIA
@Desc    :   None
'''

# here put the import lib

import os

#1、os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.getcwd()

#2、os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd
os.chdir(r"指定的目录地址")
os.getcwd()

#3、os.makedirs('dirname1/dirname2')    可生成多层递归目录
os.makedirs(r"test1\test2")
#在当前目录下生成 test1\test2

#4、os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.removedirs(r"test1\test2")
#当前目录下的test1\test2均删除,若test1下有其他文件则不删

#5、os.mkdir('dirname')    生成单级目录;相当于shell中mkdir dirname
os.listdir()

#6、os.rmdir('dirname')    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.mkdir(r"test1\test2")

#7、os.rmdir('dirname')    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.rmdir(r"test1")

#8、os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.listdir()

#9、os.remove()  删除一个文件
os.rename(r"test1", r"test001")

#10、os.stat('path/filename')  获取文件/目录信息
os.stat(r"test001")
os.stat_result(st_mode=16895,
               st_ino=21110623253299938,
               st_dev=1653245188,
               st_nlink=1,
               st_uid=0,
               st_gid=0,
               st_size=0,
               st_atime=1529501427,
               st_mtime=1529501427,
               st_ctime=1529499311)

#11、os.system("bash command")  运行shell命令,直接显示
os.system("ipconfig")

#12、os.path.abspath(path)  返回path规范化的绝对路径
os.path.abspath(r"test1/test2")

#13、os.path.split(path)  将path分割成目录和文件名二元组返回
dir1 = os.path.abspath(r"test1/test2")
os.path.split(dir1)

#13、os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.dirname(dir1)

#14、os.path.basename(path)  返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.basename(dir1)

#15、os.path.exists(path)  如果path存在,返回True;如果path不存在,返回False
os.path.exists(dir1)

#16、os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.join(r"指定的目录地址.py", r"指定的目录地址.py")

#17、os.path.getatime(path)  返回path所指向的文件或者目录的最后存取时间
os.path.getatime(r"指定的目录地址.py")

#18、os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间
os.path.getmtime(r"指定的目录地址.py")

os模块 就是针对间接的对操作系统进行操作,是程序与操作系统的接口,使得程序与任何操作系统平台无关。


sys 模块

sys模块 是针对 Python解释器 作相关操作。

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

下列代码最好是去 cmd(命令指示符) 里面试试

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@File    :   sysdemo.py
@Time    :   2019/10/21 10:38:12
@Author  :   YongJia Chen 
@Version :   1.0
@Contact :   chen867647213@163.com
@License :   (C)Copyright 2018-2019, Liugroup-NLPR-CASIA
@Desc    :   None
'''

# here put the import lib

import sys, time
#1、sys.version   获取Python解释程序的版本信息
sys.version
# '3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)]'

#2、sys.path   返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.path
# ['', 'C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip', 'C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python37\\DLLs', 'C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python37\\lib', 'C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python37', 'C:\\Users\\lenovo\\AppData\\Roaming\\Python\\Python37\\site-packages', 'C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages', 'C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages\\beautifulsoup4-4.8.0-py3.7.egg', 'C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages\\soupsieve-1.9.4-py3.7.egg']

#进度条
for i in range(100):
    sys.stdout.write("$")  #先写入缓存中,一次性打印在屏幕上
    time.sleep(0.1)
    sys.stdout.flush()  #每次均刷新在屏幕上

Come on!额外简单说下pip和pip3

pip和pip3是用于当你同时安装了:python2和python3时用于区分安装的版本

import sys:需要先pip3 install sys

import requests:需要先pip3 install requests

同理如果需要想要的包就--->import XXX:pip3 install XXX

快去看看吧!


🎉最后

  • 更多参考精彩博文请看这里:陈永佳的博客

  • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!