Python学习记录 #6、文件操作-磁盘IO编程

1、文件操作

1.1  导入模块

import os
import shutil

1.2  打开文件

open(name, mode)   

file = open("new_file.txt", "w")

name:是要打开的目标文件名的字符串 (可以包含文件所在的具体路径)。

mode:设置打开文件的模式(访问模式): 只读、写入、追加等。

r以只读方式打开文件。文件的指针将会放在文件的开头。(默认模式)
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
b二进制模式(可添加到其它模式使用)
+读写模式(可添加到其它模式使用)

注意:文件名要么r''转义,要么使用\\,要么/。

拓展:‘b’参数一般在mp3或者图像一类媒体文件中使用,‘rb’就是读取二进制文件。

1.3  删除文件

os.remove('文件名'):删除文件,不能删除目录

os.unlink('文件名'):删除文件,不能删除目录

shutil.unlink('文件名'):删除文件,不能删除目录

import os
import shutil

os.remove("new_dile.txt")
os.unlink("new_dile.txt")
shutil.unlink("new_dile.txt")

1.4  读取文件

.read([size]) :按字节读取,可选参数,用于指定一次最多可读取的字符(字节)个数,如果省略,则默认一次性读取所有内容。--返回字符串

.readline([size]):按行读取,可选参数,用于指定读取每一行时,一次最多读取的字节数,不选默认一行。

.readlines():按行读取,一次性读取所有行并返回列表,该列表可以由 Python 的 for... in ... 结构进行处理。--返回列表

1.5  写入文件

.write('内容'):将任意内容写入文件。

.writerlines(['内容’]):用于将字符串列表写入文件。

1.6  移动文件

shutil.move(要移动的文件/文件夹,要移动的位置)

两种方式使用:

  • 第二个参数是文件夹位置,则移动到文件夹下面
  • 第二个参数是文件路径,移动到这个路径并且重命名
    注意:如果是文件夹后面一定要加'/'

1.7  复制文件

shutil.copy(要复制的文件,要复制到的位置)

两种方式使用:

  • 第二个参数写某个文件夹位置,则复制到该文件夹下。
  • 第二个参数写文件路径,复制到这个路径并且重命名。

1.8  重命名文件

os.rename(要重命名的文件/文件夹,新的文件/文件夹):文件和文件夹重命名通用

1.4  关闭文件

.close():writer写入文件必须关闭文件,否则报错。

拓展:with语句--用于替代close方法

with open("路径") as 名称

1.5  获取文件信息

os.scandir():读取到的参数如下

  • st_size: 文件的体积大小(单位:bytes),除以10024就是KB ;
  • st_atime: 文件的最近访问时间 ;
  • st_mtime:文件的最近修改时间;
  • st_ctime:Windows下表示创建时间;
  • st_birthtime:只在Mac、Linux下可用,表示创建时间。

1.6  匹配文件名称

1.6.1 内置方法

startswith()方法:用于检索字符串是否以指定字符串开头,是返回 True;反之返回 False。
endswith()方法:用于检索字符串是否以指定字符串结尾,是则返回 True;反之则返回 False

1.6.2 glob模块

import glob
    
print(glob.glob('*.py'))
    
print(glob.glob('**/*.txt',recursive=True))
模式意义
匹配所有
?匹配任何单个字符
[seq]匹配seq中的任何字符
[!seq]匹配任何不在seq中的字符

2、文件夹操作

2.1  创建文件夹

os.mkdir(文件夹名字)

2.2  删除文件夹

os.rmdir(文件夹名字)

2.3  复制文件夹

shutil.copytree(要复制的文件夹,要复制到的新文件夹位置)

2.4  移动文件夹

shutil.move(要移动的文件/文件夹,要移动的位置)

2.5  重命名文件夹

os.rename(要重命名的文件/文件夹,新的文件/文件夹)

2.6  删除文件夹

shutil.rmtree(要删除的文件夹)

2.7  获取文件夹里文件列表

os.listdir(文件夹名字) --返回列表

里面可能存在其他文件夹,判断是文件还是文件夹:

os.path.isdir(file)
os.path.isfile(file)

2.8  路径拼接

os.path.join('My', 'service'):'My'一路径,'service'二路径

Windows中采用反斜杠(\\)作为作为文件夹之间的分隔符(# My\\service)

3、压缩包操作

3.1  导入模块

import zipfile

3.2  读取压缩包文件

zipfile.ZipFile('压缩包.zip','r')

3.3  解压压缩包

zipobj.extract(压缩包要解压的文件名,解压到的位置)

3.4  将所有的文件都提取出来

.extractall(解压到的位置)

3.5  创建压缩包

zipobj.write(待压缩文件名)

import zipfile
    
file_list = ['a.txt','b.txt','c.txt']

# 写入压缩包    
with zipfile.ZipFile('压缩包.zip','w') as zipobj: 
    # 循环遍历待写入文件
    for file in file_list:
        zipobj.write(file)

3.6  中文乱码解决方案

for file_name in zipodj.namelist():
    print(file_name.encode('cp437').decode('gbk'))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值