当前位置:   article > 正文

72. import 导入标准模块(os模块)_pycharm import os 模块怎么使用

pycharm import os 模块怎么使用

72. import 导入标准模块(os模块)

1. 标准模块知识回顾

标准模块是 Python 自带的模块,不需要安装就能直接调用。

调用语法为:import+模块名

在这里插入图片描述

【备注】图片来源于CSDN博主程序员与Python

2. os 模块的基本介绍

os 模块是 Python 编程语言中一个常用的标准模块。

os 是 operation system 的缩写。

operation system 译为操作系统。

operation [ˌɒpəˈreɪʃn]:操作。

system [ˈsɪstəm]:系统。

os 模块支持文件和目录操作,进程管理,环境变量管理等功能。

【os 模块常用功能】

  1. 文件的目录、路径操作

  2. 进程管理

  3. 环境参数的设置

3. import 导入标准模块

标准模块是 Python 自带的模块,不需要安装。

导入标准模块主要有4种方法:

1. 方法1

【语法】

import + 模块名

import [ˈɪmpɔːt]:导入。

【示例】

import os 
  • 1
'
运行

如上面的代码所示,当我需要导入某个标准模块时,直接在 import 后接上模块名即可。

这里的 import 是导入的意思。

这里的 os 就是模块名。

os 可以替换成任意你想导入的 Python 中的标准模块。

import os 意思是导入 os 模块。

【备注】

注意 import 与模块名之间有1个空格。

2. 方法2

【语法】

from 库名 import *

【示例】

from turtle import * 
  • 1
'
运行

【语法要点】

  1. from 关键字;

  2. turtle 模块名;

  3. import 关键字;

  4. *

turtle [ˈtɜːtl]:海龟。

turtle 是第3方模块,作用是绘图。

第3方模块需要先安装,才能调用。

安装方法下节讲。

【import turtle 和 from turtle import * 的区别】

1. 导包不同

import turtle 导入了 turtle 包以及所有的内部成员。

from turtle import * 未导入 turtle 包,只是从这个命名空间导入了所有的成员。

2. 声明不同

import turtle 不能使用未声明的变量。因此,要对每项加上包的前缀。

from turtle import * 可以直接使用命名空间内已经定义好的项目名称。

3. 路径不同

import turtle 的所有函数是相对路径,每次使用模块中的函数都要确定引用。

from turtle import * 的所有函数都是绝对路径,直接使用函数就可以了。

4. 概括

import turtle 只是导入 turtle 这个文件,如果要用文件里的函数,类等方法需要turtle.xxx,即需要写明模块名,然后是英文小圆点,最后再写明函数或方法名。

from turtle import * 是导入 turtle 文件里的函数,类等方法,直接使用文件里的函数,类等方法即可,不需要加前缀turtle和实心点。

【备注】

两者的区别这里仅做简单叙述,大家知道有这么个东西即可,后面实操的时候会详细讲解。

3. 方法3

【语法】

import 模块名 as 简写的模块名

【示例】

import pandas as pd
  • 1
'
运行

【语法要点】

  1. import 关键字;

  2. pandas 是模块名

  3. as 关键字

  4. pd 是简写的模块名;(这个名字你可以自己简写)

import pandas as pd 表示导入 pandas 模块,并简写为 pd。

pandas 是一个用于数据分析的 Python 模块。

pandas 是第三方库,需要安装才能调用,安装方法下节讲解。

我们在做数据分析时候会频繁的用到这个模块,为了书写代码方便,我们就给它起一个简单的名字,方便我们敲代码。

敲 pandas 和敲 pd 相比,肯定 pd 更节约时间。

居里夫人的全名叫玛丽亚·斯克沃多夫斯卡-居里,为了方便,我们通常成简写为玛丽·居里。

这里的 as 可以理解为简写为的意思。

大家目前先掌握方法1即可。

方法2和方法3仅做了解,后面的实操会有详细讲解。

4. 方法4

除了先导入模块,再调用模块中的类、函数、变量。

我们还可直接导入模块中的类、函数、变量。

【语法】

from 模块名 import 类名/函数名/变量名

【示例】

from os import system
  • 1
'
运行

from os import system 译为从 os 库中导入 system 函数。

【语法要点】

  1. from 关键字;

  2. os 库名;

  3. import 导入;

  4. system 函数名。

4. 调用模块或库中的类、函数、变量

导入模块和库后,我们就能使用模块和库里面具体的功能。

调用模块或库中的类、函数、变量的语法如下:

  1. 调用模块或库的类:模块名.类名(),如 csv.DictReader()

  2. 调用模块或库的函数:模块名.函数名(),如 os.mkdir()

  3. 调用模块或库的变量:模块名.变量名,如 os.name

【备注】

DictReader 是首字符是大写,它是一个类名,具体的作用后面会学。

5. os模块的路径操作

1. 准备工作

  1. 在D盘新建文件夹72

  2. 72文件夹中新建一个72.py文件;

  3. 72文件夹中新建一个工作文件夹;

  4. 工作文件夹中新建一个成绩表.txt文件;

  5. 用 vscode 编辑器打开72文件夹;

  6. 72.py 文件中编写下面的代码。

2. os.getcwd 获取当前工作目录

cwd 是 current working Directory 的缩写,译为当前工作目录。

当前工作目录就是我们现在编写代码的文件所在的文件夹。

get [ɡet]:得到。

current [ˈkʌrənt]:当前的。

working [ˈwɜːkɪŋ]:工作。

directory [dəˈrektəri]:目录。

在使用某个模块之前,我们需要先导入该模块,其导入代码如下:

# 模块的导入语法
# import 模块名
import os
  • 1
  • 2
  • 3
'
运行

只有导入模块后,我们才能使用模块里面具体的功能。

调用 os 模块的 getcwd 函数获取当前的工作目录:

调用模块下的函数语法:模块名.函数名()

【体验代码】

# 模块的导入语法
# import 模块名
import os

# 调用模块的函数
# 模块名.函数名
# getcwd作用是获取当前工作目录
os.getcwd( )
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
'
运行

【终端输出】

'd:\\72'
  • 1

【返回值】

返回的'd:\\72'就是当前工作目录。

当前工作目录就是我们现在编写代码的72.py文件所在的文件夹。

现在我们把72文件复制到电脑桌面,并用vscode打开桌面的72文件夹,查看返回的工作目录。

# 模块的导入语法
# import 模块名
import os

# 调用模块的函数
# 模块名.函数名
# getcwd作用是获取当前工作目录
os.getcwd( )
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
'
运行

【终端输出】

'c:\\Users\\xiaoyuzhou\\Desktop\\72'
  • 1

【返回值】

返回的'c:\\Users\\xiaoyuzhou\\Desktop\\72'就是当前工作目录。

【温馨提示】

vscode 编辑器打开的文件不同,则返回的工作目录不同。

这里的getcwd函数不需要传递参数。

3. os.mkdir 创建新的目录

mkdir是 make directory 的缩写,译为创建目录。

make [meɪk]:创建。

directory [dəˈrektəri]:目录。

mkdir 的作用就相当于新建文件夹。

【体验代码】

# 模块的导入语法
# import 模块名
import os

# 调用模块的函数
# 模块名.函数名
# mkdir作用是创建目录
os.mkdir("花名册")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

运行上述代码,我们发现在72文件夹里成功新建了一个名为花名册的文件夹。

在这里插入图片描述

mkdir 函数的参数为路径,可以是相对路径,也可以是绝对路径。

这里的花名册就是相对路径,意思就是在当前文件夹下新建一个花名册文件夹。

【路径知识回顾】

相对路径使用两个特殊符号表示:点(.) 和双点()。

一个点. 表示文件或文件夹所在的当前目录。

两个点 表示当前目录的上一级目录。

.\可以省略的。

建议在路径参数前进加一个字母R或r,可以实现路径转义,避免路径参数中出现转义字符。

【路径参数解析】

我们在当前文件夹72里新建一个文件夹花名册,用相对路径可以表述为.\花名册

.\通常可以省略,因此这里参数直接写了花名册

【当参数为绝对路径】

# 模块的导入语法
# import 模块名
import os

# 调用模块的函数
# 模块名.函数名
# mkdir作用是创建目录
os.mkdir(r"C:\Users\xiaoyuzhou\Desktop\研二")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
'
运行

C:\Users\xiaoyuzhou\Desktop\研二这里的参数为绝对路径。

前面增加的r作用是实现路径转义,避免程序因路径参数中含有转义字符而报错。

运行上述代码,我们可在电脑桌面新建了一个名为研二的文件夹。

绝对路径的地址可以用【shift】快捷键获取。

【mkdir 只能新建不存在的目录】

# 模块的导入语法
# import 模块名
import os

# 调用模块的函数
# 模块名.函数名
# mkdir作用是创建目录
os.mkdir("花名册")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
'
运行

【终端输出】

    FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: '花名册'
  • 1

【温馨提示】

运行上述代码,我们发现:

因为72文件夹里已经有一个名为花名册的文件夹,因此程序报错。

如果创建的目录已经存在,程序会报错提示文件已存在。

mkdir 只会创建不存在的目录。

4. os.makedirs 递归创建目录

# 模块的导入语法
# import 模块名
import os

# 调用模块的函数
# 模块名.函数名
# makedirs作用递归创建目录
os.makedirs("体检表\英语系\大一")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
'
运行

makedirs 就是 make directories 的缩写。

directory [dəˈrektəri]:目录。

directory 的复数形式为 directories

这里的递归是什么意思的?

大家观察代码运行后,72文件夹里的变化。

代码运行成功后,我们在72文件夹里新建了一个体检表文件夹。

体检表文件夹里新建了一个英语系文件夹。

英语系文件夹里新建了一个大一文件夹。

makedirs 的作用可以理解为依次创建文件夹。

【参数为绝对路径】

# 模块的导入语法
# import 模块名
import os

# 调用模块的函数
# 模块名.函数名
# makedirs作用递归创建目录
os.makedirs(r"C:\Users\xiaoyuzhou\Desktop\体检表\英语系\大一")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
'
运行

运行上述代码,大家可以桌面查找新建立的文夹。

5. os.remove( ) 删除指定文件

remove[rɪˈmuːv]:去掉、废除。

remove 的作用是删除指定文件。

# 模块的导入语法
# import 模块名
import os

# 调用模块的函数
# 模块名.函数名
# remove 的作用是删除指定文件
os.remove("工作\成绩表.txt")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

运行上述代码,我们发现72文件夹里的工作文夹里的成绩表.txt被成功删除。

"工作\成绩表.txt"成绩表.txt文件的相对路径。

这里的参数同样可以改成绝对路径。

6. os.rmdir( ) 删除非空目录

rmdir 是 remove directory的缩写,译为删除目录。

directory [dəˈrektəri]:目录。

# 模块的导入语法
# import 模块名
import os

# 调用模块的函数
# 模块名.函数名
# rmdir的作用是删除目录
os.rmdir("体检表\英语系\大一")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

运行上述代码,英语系文件夹里的大一文件夹被删除。

【温馨提示】

rmdir 的作用只能删除空目录。

空目录即空文件夹。

即如果文件夹里含有其它文件夹或文件,程序报错。

【体验代码】

删除体检表文件夹,程序报错。

因为体检表文件夹里还有一个英语系文件夹。

# 模块的导入语法
# import 模块名
import os

# 调用模块的函数
# 模块名.函数名
# rmdir的作用是删除目录
os.rmdir("体检表")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

【终端输出】

OSError: [WinError 145] 目录不是空的。: '体检表'
  • 1

目录不是空的,意思就是体检表文件夹里还有一个文件夹或文件,因此程序报错。

7. os.listdir( )返回指定文件夹下,文件或文件夹名字的列表

listdir 是 list directory 的缩写,译为目录的列表。

list [lɪst]:列表。

directory [dəˈrektəri]:目录。

【体验代码】

查看72文件夹里的文件目录:

# 模块的导入语法
# import 模块名
import os

# 调用模块的函数
# 模块名.函数名
# listdir返回文件或文件夹名字的列表
os.listdir("..\\72")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

【终端输出】

['72.ipynb', 'img', '体检表', '工作', '花名册']
  • 1

【返回值】

程序返回的是一个列表。

列表里存储有72文件夹里的所有文件、文件夹名称。

【当listdir 函数的参数为空时,默认返回的是当前目录下的文件夹列表】

当前文件夹即72文件夹。

# 模块的导入语法
# import 模块名
import os

# 调用模块的函数
# 模块名.函数名
# listdir返回文件或文件夹名字的列表
os.listdir()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
'
运行

【终端输出】

['72.ipynb', 'img', '体检表', '工作', '花名册']
  • 1

【查看体检表文件夹的文件目录】

# 模块的导入语法
# import 模块名
import os

# 调用模块的函数
# 模块名.函数名
# listdir返回文件或文件夹名字的列表
os.listdir("..\\72\\体检表")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

【终端输出】

['英语系']
  • 1

返回的列表是英语系,因为体检表里还有一个英语系文件夹。

6. os模块的进程管理

1. 启动计算器进程

system[ˈsɪstəm]:系统。

calculator[ˈkælkjuleɪtə]:计算器。

# 模块的导入语法
# import 模块名
import os

# 调用模块的函数
# 模块名.函数名
# cala:打开计算器
os.system('calc')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
'
运行

【终端输出】

0
  • 1

【语法解析】

  1. os 模块名

  2. . 英文小圆点

  3. system 函数名

  4. ( ) 英文圆括号

  5. 函数的参数

【温馨提示】

system 函数的参数为 calc 时,作用就是打开电脑计算机进程。

注意 calc需 要添加英文引号。

【返回结果】

运行上述代码,程序会自动打开电脑的计算器进程。

在这里插入图片描述

2. 启动画图进程

mspaint:画图。

# 模块的导入语法
# import 模块名
import os

# 调用模块的函数
# 模块名.函数名
# mspaint 打开画图软件
os.system('mspaint')   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
'
运行

【终端输出】

0
  • 1

【温馨提示】

system 函数的参数为 mspaint 时,作用就是打开电脑画图软件。

注意mspaint前后需要加一个英文引号。

【返回结果】

运行上述代码,程序会自动打开电脑的画图软件。

在这里插入图片描述

3. 启动远程连接

Microsoft terminal services client 通常简写为 mstsc

Microsoft [ˈmaɪkrəʊsɒft]:微软公司。

terminal [ˈtɜːmɪnl]:末端,终点。

services [ˈsɜːvɪsɪz]:服务。

client [ˈklaɪənt]客户端。

mstsc 意思是创建与终端服务器或其他远程计算机的连接,即远程桌面连接。

# 模块的导入语法
# import 模块名
import os

# 调用模块的函数
# 模块名.函数名
# mstsc 启动远程连接
os.system('mstsc') 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
'
运行

【终端输出】

0
  • 1

【温馨提示】

system 函数的参数为 mstsc 时,作用就是打开电脑远程桌面连接。

注意mstsc前后需要加一个英文引号。

启动进程后,系统自动返回数值0

【返回结果】

运行上述代码,程序自己打开电脑的远程连接。

在这里插入图片描述

7. 直接调用模块的函数 类 变量

【下面的代码为先导入模块,然后再调用模块的函数】

import os

os.system('calc')    # 打开计算器
os.system('mspaint') # 打开画图软件
os.system('mstsc')   # 打开远程连接
  • 1
  • 2
  • 3
  • 4
  • 5
'
运行

【终端输出】

0
  • 1

【下面的代码为直接导入模块的函数】

from os import system

system('calc')      # 打开计算器
system('mspaint')   # 打开画图软件
system('mstsc')     # 打开远程连接
  • 1
  • 2
  • 3
  • 4
  • 5
'
运行

【终端输出】

0
  • 1

上面2段代码的作用是一样的,都能打开电脑的计算器、画图、远程连接程序。

【区别如下】

在这里插入图片描述

8. 总结

1. 知识总结

【导入标准模块的4种方法】

  1. import + 模块名

  2. from turtle import *

  3. import pandas as pd:表示导入 pandas 模块,并简写为 pd。

  4. from os import system :表示从 os 库中导入 system 函数。

【调用模块或库中的类、函数、变量】

  1. 调用模块或库的类:模块名.类名(),如 csv.DictReader()

  2. 调用模块或库的函数:模块名.函数名(),如 os.mkdir()

  3. 调用模块或库的变量:模块名.变量名,如 os.name

【os 的路径操作】

os.getcwd 获取当前工作目录

os.mkdir 创建新的目录

os.makedirs 递归创建目录

os.remove( )删除指定文件

os.rmdir( ) 删除非空目录

os.listdir( )返回指定文件夹下,文件或文件夹名字的列表

【os 模块的进程管理】

os.system('calc') 启动计算器进程

os.system('mspaint') 启动画图进程

os.system('mstsc') 启动远程连接

2. 代码总结

【os路径操作】

import os

# getcwd作用是获取当前工作目录
os.getcwd( )

# mkdir作用是创建目录
os.mkdir("花名册")

# makedirs作用递归创建目录
os.makedirs("体检表\英语系\大一")

# remove 的作用是删除指定文件
os.remove("工作\成绩表.txt")

# rmdir的作用是删除目录
os.rmdir("体检表\英语系\大一")

# listdir返回文件或文件夹名字的列表
os.listdir("..\\72\\体检表")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

【os进程管理:导入模块】

import os

os.system('calc')    # 打开计算器
os.system('mspaint') # 打开画图软件
os.system('mstsc')   # 打开远程连接
  • 1
  • 2
  • 3
  • 4
  • 5
'
运行

【os进程管理:导入模块的函数】

from os import system

system('calc')     # 打开计算器
system('mspaint')  # 打开画图软件
system('mstsc')    # 打开远程连接
  • 1
  • 2
  • 3
  • 4
  • 5
'
运行

3. 图片总结

在这里插入图片描述

9. 课后练习

  1. 用 os 的函数在 D 盘中新建一个成绩文件夹,在成绩文件夹里新建一个各班级成绩文件夹。

  2. 用with open 在各班级成绩文件夹中新建3txt文件,名称分别为1班成绩2班成绩3班成绩

  3. 在3个txt文件中分别写入张三,30分李四,40分王五,50分

  4. 用os的函数在输出各班级成绩文件夹中的文件目录。

【思路解析】

  1. 这里同时创建2个文件夹,我们用 os 的 makedirs 函数;

  2. makedirs 的参数:

绝对路径参数:r"D:\成绩\各班级成绩"

相对路径参数:假设仍然在72.ipynb文件夹里编写代码,那当前目录是72文件夹,72文件夹刚好在D盘,那在D盘创建的相对路径即为r"..\\成绩\\各班级成绩"

..\\表示72文件夹的上一级目录。

  1. with open ( ) as f :可以以自动关闭文件的方式写入文件。

open 函数的3个参数:

  1. 路径参数:路径参数和 makedirs 参数一样,只是多加一个文件名即可。

  2. mode参数,这里要新建文件,mode 参数可以选 wa

w:以只写模式打开文件,不能读内容。如果文件不存在,则创建文件;如果文件存在,则覆盖文件的内容。

a:以追加模式打开文件,不能读内容。如果文件不存在,则创建文件;如果文件存在,则在文件末尾追加。

  1. encoding=“utf-8”

【方法1:绝对路径】

# 模块的导入语法
# import 模块名
import os

# 调用模块的函数
# 模块名.函数名
# makedirs作用递归创建目录
os.makedirs(r"D:\成绩\各班级成绩")

# 
with open ( r"D:\成绩\各班级成绩\1班成绩.txt", mode = "w", encoding="utf-8" ) as f :
    f.write("张三,30分")

with open (r"D:\成绩\各班级成绩\2班成绩.txt", mode = "a", encoding="utf-8" ) as f :
    f.write("李四,40分")

with open (r"D:\成绩\各班级成绩\3班成绩.txt", mode = "a", encoding="utf-8" ) as f :
    f.write("王五,50分")

# listdir返回文件或文件夹名字的列表
os.listdir(r"D:\成绩\各班级成绩")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
'
运行

【终端输出】

['1班成绩.txt', '2班成绩.txt', '3班成绩.txt']
  • 1

运行上述代码后,可在 D 盘查看新建的文件夹和文件。

查看后删除一整个成绩文件夹,用相对路径再次编写代码。

【方法2:相对路径】

# 模块的导入语法
# import 模块名
import os

# 调用模块的函数
# 模块名.函数名
# makedirs作用递归创建目录
os.makedirs(r"..\\成绩\\各班级成绩")


with open ( r"..\\成绩\各班级成绩\1班成绩.txt", mode = "w", encoding="utf-8" ) as f :
    f.write("张三,30分")

with open ( r"..\\成绩\各班级成绩\2班成绩.txt", mode = "w", encoding="utf-8" ) as f :
    f.write("李四,40分")

with open ( r"..\\成绩\各班级成绩\3班成绩.txt", mode = "w", encoding="utf-8" ) as f :
    f.write("王五,50分")

# listdir返回文件或文件夹名字的列表
os.listdir('..\\成绩\各班级成绩')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

【终端输出】

['1班成绩.txt', '2班成绩.txt', '3班成绩.txt']
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/838563
推荐阅读
相关标签
  

闽ICP备14008679号