Python学习(组织文件)

来源:互联网 发布:网络推广公司怎么运营 编辑:程序博客网 时间:2024/05/21 08:03

我现在桌面上创建了名称分别为1,2的文件夹,在1中创建了python01,python02,python03,本文的所有操作都是在这基础上进行的。

一、shutil模块:Python程序中复制、移动、改名和删除文件。

1.文件复制:调用shutil.copy(source, destination),将原始路径source处的文件复制到目标路径destination处的文件夹中(sourcedestination都是表示路径的字符串),如果destination是一个文件名,它将作为被复制文件的新名字。该函数返回复制后的文件路径,也是一个字符串。

>>> import shutil>>> shutil.copy('C:\\Users\\King\\Desktop\\1\\python01.txt', 'C:\\Users\\King\\Desktop\\2')'C:\\Users\\King\\Desktop\\2\\python01.txt'>>> shutil.copy('C:\\Users\\King\\Desktop\\1\\python01.txt', 'C:\\Users\\King\\Desktop\\2\\python2_1')'C:\\Users\\King\\Desktop\\2\\python2_1'
2.文件夹复制、备份:shutil.copytree()将复制整个原始文件夹,并创建一个新的文件夹来保存文件,若所创文件夹已存在,则报错提示。

>>> shutil.copytree('C:\\Users\\King\\Desktop\\1', 'C:\\Users\\King\\Desktop\\2')'C:\\Users\\King\\Desktop\\2'
3.文件和文件夹的移动和改名shutil.move(source, destination),将原始路径source处的文件()移动到路径destination,返回新位置的绝对路径的字符串。

>>> shutil.move('C:\\Users\\King\\Desktop\\1', 'C:\\Users\\King\\Desktop\\2')'C:\\Users\\King\\Desktop\\2\\1'
>>> shutil.move('C:\\Users\\King\\Desktop\\1\\python01.txt', 'C:\\Users\\King\\Desktop\\2')'C:\\Users\\King\\Desktop\\2\\python01.txt'

注意:如果2中存在名称为1的文件夹,则不能移动;将文件夹1中的python01移动到2中(文件移动),若2中存在名称为python01的文件,则会覆盖本文件;destination路径也可以指定一个文件名(文件移动),那么source中的文件被移动后会改名为此文件名。

>>> shutil.move('C:\\Users\\King\\Desktop\\1\\python01.txt', 'C:\\Users\\King\\Desktop\\2\\python1.txt')'C:\\Users\\King\\Desktop\\2\\python1.txt'

4.永久删除文件和文件夹

4.1调用os.unlink(path)将删除path处的文件;

4.2调用os.rmdir(path)将删除path处的文件夹。该文件夹必须为空,即其中没有任何文件和文件夹;

4.3调用shutil.rmtree(path)将删除path处的文件夹,其目录下包含的所有文件和文件夹都会被删除。

>>> import os>>> for file in os.listdir('C:\\Users\\King\\Desktop\\2'):if file.endswith('.txt'):    #endswith表示以什么结尾print(file)python1.txt>>> for file in os.listdir('C:\\Users\\King\\Desktop\\2'):    if file.endswith('.txt'):        os.unlink(os.path.join('C:\\Users\\King\\Desktop\\2', file))    #这里不是没输出,而是以.txt结尾的文件python1.txt文件被删掉了    #os模块有不懂的,请参看上一篇博客

5.安全删除文件或文件夹:shutil.rmtree()函数不可恢复地删除文件和文件夹,有时会出现麻烦,这里说下第三方的send2trash模块,send2trash会将删除的文件等放到回收站,不会释放磁盘空间等同于Windows上一个先扔进回收站的操作,如果想继续使用,可以手动恢复。在Windows,打开cmd命令行模式,然后输入pip回车,然后输入pip install send2trash即完成安装

>>> import send2trash>>> baconFile = open('bacon.txt', 'a') # creates the file>>> baconFile.write('Bacon is not a vegetable.')25>>> baconFile.close()>>> send2trash.send2trash('bacon.txt')
二、遍历目录树os.walk()函数在循环的每次迭代中,返回3个值:

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

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

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

>>> import os>>> for folderName, subfolders, filenames in os.walk('C:\\Users\\King\\Desktop\\1'):print('The current folder is ' + folderName)for subfolder in subfolders:print('SUBFOLDER OF ' + folderName + ': ' + subfolder)for filename in filenames:print('FILE INSIDE ' + folderName + ': '+ filename)print('')The current folder is C:\Users\King\Desktop\1SUBFOLDER OF C:\Users\King\Desktop\1: 1.1FILE INSIDE C:\Users\King\Desktop\1: python01.txtFILE INSIDE C:\Users\King\Desktop\1: python02.txtFILE INSIDE C:\Users\King\Desktop\1: python03.txtThe current folder is C:\Users\King\Desktop\1\1.1FILE INSIDE C:\Users\King\Desktop\1\1.1: python01.txtFILE INSIDE C:\Users\King\Desktop\1\1.1: python02.txtFILE INSIDE C:\Users\King\Desktop\1\1.1: python03.txt
三、用zipfile模块压缩文件

1.读取ZIP文件:用zipfile.ZipFile()函数来找到相应目录下的压缩文件。

>>> import zipfile>>> myZip = zipfile.ZipFile('C:\\Users\\King\\Desktop\\1.zip')>>> myZip.namelist()['1/', '1/python01.txt', '1/python02.txt', '1/python03.txt']>>> zipInfo = myZip.getinfo('1/python01.txt')>>> zipInfo.file_size13>>> zipInfo.compress_size15    #这里可以评论一下>>> myZip.close() 

2.从ZIP文件中解压缩extractall(path)中可以传递一个文件夹名称,将压缩文件解压到此文件夹,而不是减压到当前工作目录。如果传递给extractall()方法的文件夹不存在,它会被创建。extract(path)方法用于从ZIP文件中解压缩单个文件,传递给extract()的字符串,必须匹配namelist()返回的字符串列表中的一个。

>>> import zipfile>>> myZip = zipfile.ZipFile('C:\\Users\\King\\Desktop\\1.zip')>>> myZip.extractall('C:\\Users\\King\\Desktop\\1')>>> myZip.extract('1/python01.txt')'C:\\Users\\King\\AppData\\Local\\Programs\\Python\\Python35\\1\\python01.txt'    #单文件减压到当前工作路径>>> myZip.extract('1/python01.txt', 'C:\\Users\\King\\Desktop\\2')'C:\\Users\\King\\Desktop\\2\\1\\python01.txt'    #单文件解压到制定路径>>> myZip.close() 

3.创建和添加到ZIP文件要创建压缩ZIP文件,必须以“写模式”打开ZipFile对象,即传入'w'作为第二个参数。

>>> import zipfile, os>>> os.getcwd()    #查看当前工作路径'C:\\Users\\King\\AppData\\Local\\Programs\\Python\\Python35'>>> os.chdir('C:\\Users\\King\\Desktop')    #更改当前工作路径到桌面>>> os.getcwd()'C:\\Users\\King\\Desktop'>>> myZip = zipfile.ZipFile('1.zip', 'w')    #创建名字为1的压缩文件,也可以直接在这里面创建压缩路径,比如'C:\\Users\\King\\Desktop\\1.zip'>>> myZip.write('C:\\Users\\King\\Desktop\\1\\python01.txt', compress_type=zipfile.ZIP_DEFLATED)    #将指定文件压缩进来>>> myZip.close()
原创粉丝点击