一、shutil 模块

shutil其实也就是shell模块。其中包含一些函数,可以让我们在python程序中复制、移动、改名和删除文件

1.1 复制文件和文件夹

  • shutil.copy(source,destination):将路径source处的文件复制到路径destination处的文件夹。如果destination是一个文件名,那么它将作为被复制的新名字
  • shutil.copytree(source,destination):将路径source处的文件夹,包括它的所有文件和子文件夹,复制到路径destination处的文件夹。

结果:

1.2 移动文件和文件夹

  • shutil.move(source,destination):将source处的文件夹移动到路径destination,并返回新位置的绝对路径的字符串


如果destination指向一个文件夹,source文件将移动到destination中,并保持原来的文件名;
如果destination指向一个文件,这个文件就会被覆盖,注意!
如果destination指向一个不存在的文件夹,这个时候source里面的内容会移动到destination,source改名为destination

结果:

1.3 删除文件和文件夹

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

结果:

二、遍历文件

  • os.walk(path):通过传入一个路径

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

1.当前文件夹名称的字符串

2.当前文件夹中子文件夹的字符串的列表

3.当前文件夹中文件的字符串的列表

输出(部分):

ubuntu@vm-0-2-ubuntu:~/python_file$ /usr/bin/python3 /home/ubuntu/python_file/python/orignize_files.py
/home/ubuntu/python_file:
        /home/ubuntu/python_file: .vscode(dir)
        /home/ubuntu/python_file: python(dir)
        /home/ubuntu/python_file: test.cpp
        /home/ubuntu/python_file: test.txt
        /home/ubuntu/python_file: tempcoderunnerfile.py
/home/ubuntu/python_file/.vscode:
        /home/ubuntu/python_file/.vscode: db(dir)
        /home/ubuntu/python_file/.vscode: .git(dir)
        /home/ubuntu/python_file/.vscode: log(dir)
        /home/ubuntu/python_file/.vscode: settings.json
/home/ubuntu/python_file/.vscode/db:
        /home/ubuntu/python_file/.vscode/db: cpptips.db-wal
        /home/ubuntu/python_file/.vscode/db: cpptips.db-shm
        /home/ubuntu/python_file/.vscode/db: cpptips.db
/home/ubuntu/python_file/.vscode/.git:
        /home/ubuntu/python_file/.vscode/.git: 6eb7a60f73d1a1d9bdf44f2e86d7f4cc_test.cpp
/home/ubuntu/python_file/.vscode/log:
        /home/ubuntu/python_file/.vscode/log: cpptips.server.2021-05-19.log
        /home/ubuntu/python_file/.vscode/log: cpptips.server.2021-05-16.log
        /home/ubuntu/python_file/.vscode/log: cpptips.server.2021-05-17.log
        /home/ubuntu/python_file/.vscode/log: cpptips.client.log
        /home/ubuntu/python_file/.vscode/log: cpptips.server.log
/home/ubuntu/python_file/python:
        /home/ubuntu/python_file/python: temp1(dir)
        /home/ubuntu/python_file/python: .git(dir)
        /home/ubuntu/python_file/python: readme.md
        /home/ubuntu/python_file/python: hello_world.py
        /home/ubuntu/python_file/python: orignize_files.py
        /home/ubuntu/python_file/python: regex.py
        /home/ubuntu/python_file/python: file_mange.py
………
………
………

三、压缩文件

利用zipfile模块中的函数,python程序可以创建和打开zip文件。

3.1 创建和添加zip文件

想要创建zip文件,必须用zipfile方法创建一个zipfile对象。zipfile对象在概念上和file对象相似。

之后,以写模式打开这个对象。调用write()方法传入一个路径,python就会压缩该路径所指的文件,将它加到zip文件中。write的第一个参数是一个字符串,代表要添加的文件名。第二个参数是”压缩类型“参数,告诉计算机使用怎样的算法来压缩文件。一般来说,zip_deflated就可以了。

结果:

3.2 读取zip文件

当用zipfile函数打开一个zip文件的时候,会返回一个zipfile对象。之后调用这个对象的namelist()方法就可以获得zip里面的压缩文件列表。

同时这个对象还有一个getinfo()方法,通过传入一个压缩文件名,就可以获得这个文件的一些信息。

输出:

ubuntu@vm-0-2-ubuntu:~/python_file$ /usr/bin/python3 /home/ubuntu/python_file/python/orignize_files.py
filename: test.txt
        size: 26
        compress_size: 26
filename: test.cpp
        size: 30
        compress_size: 28

3.3 解压缩zip文件

zipfile对象的extractall方法从zip文件中解压缩所有的文件和文件夹,放到当前工作目录下:

结果:

四、参考文献

到此这篇关于python基础学习之组织文件的文章就介绍到这了,更多相关python组织文件内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!