我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python 3 学习笔记:目录&文件处

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python 3 学习笔记:目录&文件处

路径

路径,用于定位目录或文件的字符串。

相对路径

相对路径依赖于当前工作目录(即当前文件所在的目录),可以使用如下函数获取当前工作目录,

1
os.getcwd()
复制
在当前工作目录中,可以使用相对路径访问这个目录中的所有子目录和其中的文件,而无需使用完整路径。

绝对路径

指一个目录或文件的实际路径,如 D:\Code\Python-Study-Notes\exercise\try_except_demo.py,这就是一个绝对路径,无论当前在哪个目录中,只要使用这个路径,就会访问 try_except_demo.py 文件。

可以使用如下函数获取目录或文件的绝对路径,

1
os.path.abspath(path)
复制
其中,参数 path 是一个相对路径,可以是目录,也可以是文件。

路径处理

判断指定的目录或文件是否存在
1
os.path.exists(path)
复制
存在则返回 True,反之则返回 False。

拼接目录与目录或文件的名字
1
os.path.join(path, name)
复制
分离文件名和其扩展名
1
os.path.splitext(fileName)
复制
从一个路径中提取最后的目录名或文件名
1
os.path.basename(path)
复制
从一个路径中提取最后一个目录或文件所在的目录
1
os.path.dirname(path)
复制
判断是否为有效路径
1
os.path.isdir(path)
复制
目录基本操作

目录,即文件夹,可以存放目录及文件。

获取当前系统类型
1
os.name
复制
其中,nt 表示 Windows;posix 表示 Linux 或 Unix 或 MacOS。

获取当前系统的换行符
1
os.linesep
复制
获取当前系统的路径分隔符
1
os.sep
复制
获取当前的工作目录的路径
1
os.getcwd()
复制
已列表的形式返回指定路径下的目录和文件
1
os.listdir(path)
复制
在指定路径下新建一个目录
1
os.mkdir(path, mode)
复制
path 为路径,mode 表示目录的权限(在非 Unix 系统上无效)。

在指定路径下创建多级目录
1
os.makedirs(path, mode)
复制
创建多级目录,即创建它本身及它的子目录和子目录的子目录,mode 表示目录的权限(在非 Unix 系统上无效)。

删除文件
1
os.remove(path)
复制
或者,

1
os.unlink(path)
复制
该函数可以删除指定路径下的文件。

删除一个非空的目录
1
os.rmdir(path)
复制
使用 rmdir() 删除一个目录时,该目录下不能有任何子目录和文件。

删除多级空目录
1
os.removedirs(path)
复制
删除它本身及其中的子目录和子目录中的子目录,但是这些目录中不能有任何文件,即这些目录必须是空的。

把 path 设置为当前的工作目录
1
os.chdir(path)
复制
遍历指定路径下的所有目录和文件
1
os.walk(path, topdown=True, onerror, followlinks=False)
复制
该函数只在 Unix 和 Windows 系统中有效。

path 表示要遍历的目录;topdown 如果为 True 则自上而下遍历,反之则自下而上;onerror 用于指定错误处理函数;followlinks 用于指定在支持的系统上访问由符号链接指向的目录。

该函数返回一个元组生成器对象,其中包含三个元素:当前遍历的路径,是一个字符串;该路径下包含的目录,是一个列表;当前路径下包含的文件,是一个列表。示例如下:

1
2
3
4
5
6
7
8
9
import os

root = r"D:\Code\YunYiCangQiong\00 原文稿"

for path, dirs, files in os.walk(root,followlinks=True):
for name in dirs:
print("○", os.path.join(root, name))
for name in files:
print("●", os.path.join(root, name))
复制
列出目录下的所有内容(子目录和文件)
1
os.listdir(path)
复制
该函数会列出指定路径的目录下所有内容,包含子目录、文件、隐藏文件等。

文件基本操作

在 Python 中,内置了文件(File)对象,在操作文件之间,需要使用 open() 函数打开或创建一个文件,

1
file = open(fileName, mode, buffering)
复制
file 表示被创建的文件对象;fileName 表示要打开或创建的文件名;mode 表示文件的打开模式;buffering 表示读写文件的缓存模式。

其中,mode 的参数如下:

Python 3 学习笔记:目录&文件处理

打开文件并对其操作完毕后,要及时关闭该文件,以免造成不必要的损坏。可以使用 close() 函数将文件关闭,

1
file.close()
复制
为了避免忘记关闭文件而对文件造成不必要的损坏,可以使用 with 关键字,该语句可以实现在处理文件时,无论是否出现错误,都保证 with 语句结束后关闭文件。

1
2
with expression as target:
pass
复制
expression 是一个表达式,例如使用 open() 函数打开一个文件;target 用于存放 expression 的结果。

当需要向打开的文件中写入内容时,可以使用 write() 函数,

1
file.write()
复制
当使用 write() 函数向文件中写入内容后,只有在使用 close() 函数关闭文件时,才会将写入的内容保存;如果不想立即关闭文件,可以使用 flush() 函数保存写入的内容,

1
file.flush()
复制
如果要读取文件的内容,可以使用 read() 函数,

1
file.read(size)
复制
size 表示要读取的字符的个数,省略则表示读取全部字符。

read() 函数是从头开始读的,如果想要从指定位置开始,则可以使用 seek() 函数移动光标到指定位置,

1
file.seek(offset, whence)
复制
其中,offset 表示光标移动的字符个数;whence 指定字符个数从哪个位置开始计算:0 表示从头开始;1 表示从当前位置开始;2 表示从结尾开始,默认为 0。

可以使用 readline() 函数一行行读取,

1
file.readline()
复制
也可以使用 readlines() 函数读取全部行,

1
file.readlines()
复制
该函数返回一个字符串列表,每个元素为文件的一行内容。

高级操作

shutil 模块

shutil 模块可以复制、移动、重命名和删除目录或文件。

1
shutil.copy(source, destination)
复制
该函数可以将 source 路径下的文件,复制到 destination 路径的目录下,如果目标目录中已存在同名文件,则直接替换;如果 destination 路径中包含文件名,则将被复制的文件重命名为此名称。

如果想要将目录及其中的子目录和文件,全部复制到一个新的目录中,可以使用

1
shutil.copytree(source, destination)
复制
注意,destination 路径下不能包含和 source 路径中目标文件夹的同名目录,否则系统会抛出异常。

如果需要移动目录(包括其中的子目录和文件)或文件,可以使用

1
shutil.move(source, destination)
复制
如果目标文件夹中已经包含同名目录或者文件,则会抛出异常。

os 模块中的 rmdir() 和 removedirs() 都只能删除一个非空的目录,如果想删除一个目录及其中的子目录和文件,可以使用,

1
shutil.rmtree(path)
复制
该函数可以删除指定的目录及其中所有内容(子目录及文件)。

send2trash 模块

使用 shutil 模块中的函数删除目录即文件是不可恢复的,为了保险起见,可以使用第三方库 send2trash 中的函数做删除动作,它不会完全删除目录或文件,而是将它们放入回收站中,以供反悔。因为它是一个第三方模块,所以使用之前需要使用 pip 工具安装它,并使用 import 语句导入。

1
send2trash.send2trash(path)
复制
zipfile 模块

读取 .zip 文件

该模块可以将多个目录或文件做成一个 ZIP 压缩包,当然也可以解压压缩包。

和 File 文件对象一样,要读取 ZIP 文件的内容,首先需要创建一个 ZipFile 对象,

1
zipfile.ZipFile(path)
复制
该函数返回一个 ZipFile 对象;path 表示一个 .zip 格式的压缩包。

然后,可以使用 namelist() 函数获取压缩包中的文件列表,

1
ZipFile.namelist()
复制
该函数返回一个以压缩包中的文件名作为元素的列表。

可以使用 getinfo() 函数获取文件列表中文件的信息,

1
ZipFile.getinfo(ZipFile.namelist()[index])
复制
该函数需要一个压缩包中的文件作为参数,返回一个 ZipInfo 对象,该对象具有许多可以获取文件信息的属性,如 filename、date_time、file_size 等。

解压 .zip 文件

通过 ZipFile 对象的 extractall() 方法可以对压缩包进行解压,

1
ZipFile.extractall(path)
复制
path 可选参数,用于指定解压后的存放路径;如果不指定,则解压中当前路径下。

创建 .zip 压缩包

创建压缩包,首先需要使用 ZipFile() 方法新建一个空的压缩包,然后使用 write() 方法将文件添加到压缩包中,

1
zipfile.ZipFile(name, mode).write(fileName, compress_type=zipfile.ZIP_DEFLATED)
复制
name 用于指定压缩包的名称;mode 用于指定压缩包的打开模式;fileName 用于指定要放入压缩包中的文件;compress_type 用于指定压缩算法,一般都是 ZIP_DEFLATED,该算法都大部分类型的文件都有效。

其中,mode 的值可以参考文件基本操作中的值。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python 3 学习笔记:目录&文件处

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python 3 学习笔记:目录&文件处

路径路径,用于定位目录或文件的字符串。相对路径相对路径依赖于当前工作目录(即当前文件所在的目录),可以使用如下函数获取当前工作目录,1os.getcwd()复制在当前工作目录中,可以使用相对路径访问这个目录中的所有子目录和其中的文件,而无需
2023-01-31

python学习笔记(3)

在大概了解了程序之后,我也买了本python书学习一下,因为现在新版的python3.4.0已经不再兼容2.x.x的内容,书虽然很新,但是有些例子还是用的过去的。1.比如在3.0中print 42不能再产生输出了,要改成print(42)>
2023-01-31

Python学习笔记(3)--- Fla

在安装flask前,首先安装pip安装地址:https://pip.pypa.io/en/stable/installing.html#install-pip下载(保存):在dos命令下执行 python get-pip.py安装然后 执行
2023-01-31

Python 3 学习笔记:Excel

安装模块OpenPyXL 模块是一个第三方模块,所以需要使用 pip 工具安装,pip install openpyxl文件结构首先,我们需要了解一下 Excel 文件的基本结构,一个 Excel 文件被称为一个工作薄,工作薄中可以包含多个
2023-01-31

Python学习笔记(3)Python中

EscapeWhat it does.含义 \\Backslash ()反斜杠\'Single-quote (')单引号\"Double-quote (")双引号\aASCII bell (BEL)响铃符\bASCII backspace
2023-01-31

python学习笔记2—python文件

python学习笔记2——python文件类型、变量、数值、字符串、元组、列表、字典一、Python文件类型1、源代码python源代码文件以.py为扩展名,由pyton程序解释,不需要编译[root@localhost day01]# v
2023-01-31

PHP学习笔记:文件操作与目录管理

在PHP中,文件操作和目录管理是常见且重要的功能。通过文件操作,我们可以读取和写入文件,而目录管理则可以创建、删除和遍历目录。本篇文章将介绍PHP中的文件操作与目录管理的基本知识,并提供具体的代码示例。文件操作1.1 文件的创建与写入在PH
2023-10-21

python 学习笔记(3)-转载

Python中只有一个赋值模型一、缺少类型声明语句的情况在Python中,类型是在运行过程中自动决定的,而不是通过代码声明。这意味着没有必要事声明变量。只要记住,这个概念实质上对变量,对象和它们之间的关系都适用。那么这个概念也容易理解并掌握
2023-01-31

python 学习笔记 3 -- 数据

当你创建一个对象并给它赋一个变量的时候,这个变量仅仅 引用 那个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑定。eg. # -*- coding: utf-8 -*-  shopli
2023-01-31

Python 3 学习笔记:序列

序列索引序列是一块用于放置多个值得连续存储空间,并且按特定顺序排列,每个值(称为元素)都分配一个整数(由左至右则从 0 开始;由右至左则从 -1 开始),称为索引(index)或位置,如下所示:可以根据索引获取每个元素实际的值string
2023-01-31

【MongoDB学习笔记3】处理Mong

安装MongoDB后第一次启用shell登录mongo会出现一下的错误:warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused用
2023-01-31

python的学习笔记/002-3(20

群集类型群集类型列表元组字典集合listtupledictset1.列表列表的类型是list,特点为有序,具备索引,内容与长度可以变动。要创建列表,可以使用[]直接表示法,列表中每个元素使用逗号分隔开。列表的常见操作(1) 元素的切片
2023-01-31

Python第一周 学习笔记(3)

一、数值型1.数据类型分类:int:整数python3的int就是长整型,且没有大小限制,受限于内存区域的大小int(x) 返回一个整数float:浮点数有整数部分和小数部分组成。支持十进制和科学计数法表示。只有双精度型。float(x)
2023-01-31

Python第六周 学习笔记(3)

1.指定一个源文件,实现copy到目标目录个人实现:def filecopy(filename:str, cp_filename:str): ''' Author: lijl Description: 复制文件 ty
2023-01-31

Python第二周 学习笔记(3)

1.运用数组实现求10万以内质数:prime = [2]for i in range(3,100000,2): flag = False up = int(i**0.5)+1 for j in prime:
2023-01-31

记录我的Python学习笔记

不想再像以前那样,什么都从头开始学习语法、总结语法,这样反而会过分纠结于语法,耽误了开发,毕竟语言的主要属性是工具,次要的属性是语言本身。所以还是先熟练使用语言去进行开发,等足够熟悉了,再去研究语言本身(编译原理……)。另外对于算法、设计模
2023-01-31

python学习笔记(3) -- 常用数

1.数字类型python的数字类型分为 ×××、长整型、浮点型、布尔型、复数型。(python没有字符类型)整型: ×××可以用 二进制、八进制、十六进制表示 默认是十进制。除十进制外其他三种需要加前缀:二进制(0b)、八进制(0o)、十六
2023-01-31

Python 3 学习笔记:函数(一)

函数可以理解成实现某一功能的一系列代码的集合,这样做有一个最明显的好处就是,如果我们需要反复使用某个功能,使用函数只需要写一遍这些语句,然后就可以在程序中调用这个函数,而不再需要重新写一遍这些语句。创建 & 调用创建函数创建函数使用 def
2023-01-31

python学习笔记(一)-文件操作

python的基本文件操作是包含在__buildin__模块中的。  I, 基本操作1, 打开fh=open('filename', 'r')  fh是打开文件的handle,每一个被打开的文件都应该退出时关闭(除了handle没有赋给变量
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录