Python模块讲解-os、shutil、zipfile、sys

1. os模块用法

  • os.getcwd():获取当前工作路径
  • os.chdir():改变当前工作路径
  • os.makedirs():创建新文件夹
  • os.path.join():文件路径进行拼接
  • os.path.abspath(path):将返回参数的绝对路径的字符串
  • os.path.isabs(path):判断参数是否为绝对路径
  • os.path.relpath(path,start):将返回从start路径到path的相对路径的字符串,如果没有提供start,就是用当前工作目录作为开始路径。
  • os.path.dirname(path):返回路径的目录名称
  • os.path.basename(path):返回目录的最后文件的基本名词
  • os.path.split():同时获取目录名称和基本名称的两个字符串组成的元祖
  • os.path.getsize(path):将返回path参数中文件的字节数
  • os.listdir(path):将返回path路径下所有文件和目录的列表
  • os.path.exists(path):判断path路径是否存在
  • os.path.isfile(path):判断path是否是一个文件
  • os.path.isdir(path):判断path是否是一个目录

2. 读写文件

2.1 在python中,读写文件有三个步骤:

  1. 调用open()函数,返回一个File对象
  2. 调用File对象的read()或write()方法。
  3. 调用File对象的close()方法,关闭该文件。

3. shutil模块

  可以实现对文件的复制、移动、改名和删除操作。

3.1.1 复制文件和文件夹

  • shutil.copy(source,destination):复制一个文件;将路径source处的文件复制到路径destination处的目录。如果destination是一个文件名,他将作为被复制文件的新名字。该函数返回一个字符串,表示被复制文件的路径。
  • shutil.copytree(source,destination):复制整个文件夹,以及它包含的文件夹和文件。

3.1.2文件和文件夹的移动与改名

  • shutil.move(source,destination):将路径source处的目录移动到路径destination,并返回新位置的绝对路径的字符串。
  1. 如果destination有一个与移动文件同名的文件,那么destiontion的文件将会被覆盖,所以在使用move()方法的时候要小心。
  2. destination路径也可以指定一个文件名,意思是将source移动到destination后,改一个新名字。

3.1.3 永久删除文件和文件夹

  利用os模块中的函数,可以删除一个文件或一个空文件夹。但利用shutil模块,可以删除一个文件夹及其所有的内容。

  • 用os.unlink(path)将删除path处的文件
  • 调用os.rmdir(path)将删除path处的文件夹。该文件夹必须为空,其中没有任何文件和文件夹。
  • 调用shutil.rmtree(path)将删除path处的文件夹,它包含的所有文件和文件夹都会被删除。

注意:在程序中使用这些函数时要小心,可以第一次运行程序时,注释掉这些调用,并且加上print()调用,显示会被删除的文件,这样防止误删除。

3.1.4 遍历目录树

  os.walk()在循环的每次迭代中,返回3个值:

  1. 当前文件夹名称的字符串
  2. 当前文件夹中子文件夹的字符串的列表
  3. 当前文件夹中文件的字符串的列表
import os
for foldername,subfolders,filenames in os.walk('/Users/liuweidong/PycharmProjects/pythonProject/Student_Information/'):
    print('&&&&&&&&&',foldername)
    for subfolder in subfolders:
        print('%%%%%%%%%%%%', subfolder)
    for filename in filenames:
        print('*****************',filename)

4. 用ZipFile模块压缩文件

4.1 读取ZIP文件

import zipfile

# namelist()方法,返回zip文件中包含的所有文件和文件夹的字符串列表。
#这些字符串可以传递给getinfo()方法,返回一个关于特定文件的zipinfo对象。
#file_size和compress_size,分别表示文件大小和压缩后文件大小。

examplezip = zipfile.ZipFile('test1.zip')
print(examplezip.namelist())

spaminfo = examplezip.getinfo('test1/test.py')
print(spaminfo.file_size)

print(spaminfo.compress_size)

4.2从zip文件中解压缩

import zipfile

#extractall()解压zip文件,括号内可以指定解压的路径,不存在则创建
#extract()解压指定文件,内容必须匹配namelist()返回的字符串列表中的一个,第二个参数也可以指定解压路径,不存在则创建
examplezip = zipfile.ZipFile('test1.zip')
#examplezip.extractall()
examplezip.extract('test1/test.py')
examplezip.close()

4.3创建和添加到ZIP文件

import zipfile

# 创建了一个新的new.zip文件,并且将student.txt添加至new.zip压缩文件中,zipfile.ZIP_DEFLATED为指定压缩类型
newzip = zipfile.ZipFile('new.zip','w')
newzip.write('student.txt',compress_type=zipfile.ZIP_DEFLATED)
newzip.close()

 5. sys模块

sys模块中有一个argv方法,argv列表中的第一个元素是命令行程序的名称,其余的命令行参数以字符串的形式保存在该列表中。

 

posted @ 2023-07-13 14:03  摩天居士-谢烟客  阅读(44)  评论(0编辑  收藏  举报