[关闭]
@zhangyu756897669 2017-09-15T15:27:31.000000Z 字数 3388 阅读 719

组织文件

  • 在文件夹的每个子文件夹中复制所有PDF文件(只有PDF文件)
  • 删除名为spam001.txt,spam002.txt,spam003.txt等数百个文件的文件夹中每个文件的文件名中的前导零。
  • 将几个文件夹的内容压缩成一个ZIP文件(可以是简单的备份系统)
  • 所有这些无聊的东西在Python中可自动化。通过编程您的计算机来完成这些任务,您可以将其转换为一个快速工作的文件管理员,从不犯错误。
  • 当您开始使用文件时,您可能会发现有助于快速查看文件的扩展名(.txt,.pdf,.jpg等)。使用OS X和Linux,您的文件浏览器很可能会自动显示扩展名。
  • 使用Windows,默认情况下可能会隐藏文件扩展名。要显示扩展名,请转到“开始”▸“控制面板”▸“外观和个性化”▸“选项”。在视图选项卡的高级设置下,取消选中隐藏已知文件类型的扩展名复选框。

SHUTIL 模块

shutil(或shell实用程序)模块具有使您可以在Python程序中复制,移动,重命名和删除文件的功能。要使用shutil函数,首先需要使用import shutil。

复制文件和文件夹

  1. import shutil, os
  2. os.chdir('D:\\')
  3. shutil.copy('D:\\test.txt', 'D:\\yy') #❶

'D:\yy\test.txt'

  1. shutil.copy('test.txt', 'D:\\yy\\test2.txt') #❷

'D:\yy\test2.txt'


第一个shutil.copy()调用将文件C:\ spam.txt复制到文件夹C:\ delicious。返回值是新复制的文件的路径。请注意,由于将文件夹指定为目标❶,原始的spam.txt文件名用于新的复制文件的文件名。第二个shutil.copy()调用❷也将文件C:\ eggs.txt复制到文件夹C:\ delicious,但是将复制的文件命名为egg2.txt。

  1. import shutil, os
  2. os.chdir('D:\\')
  3. shutil.copytree('D:\\yy', 'D:\\yyy')

'D:\yyy'


shutil.copytree()调用创建一个名为bacon_backup的新文件夹,其内容与原始文件夹相同。你现在已经安全地备份了你珍贵的原始文件。

移动和重命名文件和文件夹

  1. import shutil
  2. shutil.move('D:\\test.txt', 'D:\\java')

'D:\java\test.txt'


如果在D:\jave中已经有一个test.txt文件,它将被覆盖。因为很容易以这种方式覆盖文件,所以在使用move()时应该小心。

目的地路径也可以指定文件名。在以下示例中,源文件被移动并重命名。

  1. shutil.move('D:\\text.txt', 'D:\\java\\new_bacon.txt')

'D:\java\new_bacon.txt'


该行说:“将D:\ text.txt移动到文件夹D:\java中,当文件在java文件夹时,将text.txt文件重命名为new_bacon.txt。

  1. shutil.move('D:\\text.txt', 'D:\\eggs')

'D:\eggs'


在这里,move()在D:\目录中找不到名为egg的文件夹,所以假定目的地必须指定文件名而不是文件夹。所以text.txt文本文件被重命名为egg(一个没有.txt文件扩展名的文本文件) - 可能不是你想要的!这可能是您的程序中的难点问题,因为move()调用可以愉快地执行与您期望的内容完全不同的操作。这是使用move()时要小心的另一个原因。

永久删除文件和文件夹

  • 调用os.unlink(path)将在路径上删除该文件。
  • 调用os.rmdir(路径)将删除路径上的文件夹。该文件夹必须是空的任何文件或文件夹。
  • 调用shutil.rmtree(path)将删除路径中的文件夹,并且其中包含的所有文件和文件夹也将被删除。
  1. import os
  2. for filename in os.listdir():
  3. if filename.endswith('.rxt'):
  4. os.unlink(filename)
  1. import os
  2. for filename in os.listdir():
  3. if filename.endswith('.rxt'):
  4. #os.unlink(filename)
  5. print(filename)

使用send2trash模块进行安全删除

  1. import send2trash
  2. baconFile = open('test.txt', 'a') # creates the file
  3. baconFile.write('Bacon is not a vegetable.')

25

  1. baconFile.close()
  2. send2trash.send2trash('test.txt')
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注