python编程快速上手第九章实践项目1、2

一、选择性拷贝:
编写一个程序,遍历一个目录树,查找特定扩展名的文件(如.pdf、.jpg)。不论这些文件的位置在哪里,将它们拷贝到一个新文件夹中。
代码如下:

#!python3
import tkinter as tk, os, shutil, sys
from tkinter import filedialog
root = tk.Tk()
root.withdraw()

SourceFolder = filedialog.askdirectory(title = '请选择要检索的文件夹:')  #获取文件夹
print(SourceFolder)
DestinationFolder = filedialog.askdirectory(title = '请选择存放文件的文件夹:')

#if '/' in SourceFolder :
    # 用\替换/,注意'\\'的用法,
    # 如果直接使用'\',会被系统识别成转义字符
    #SourceFolder = SourceFolder.replace('/', '\\') 

if len(SourceFolder) == 0 :
    print('未找到要检索的文件夹!程序中止。')
    sys.exit()
if len(DestinationFolder) == 0 :
    print('未找到存放文件的文件夹!程序中止。')
    sys.exit()

os.chdir(SourceFolder)
print('正在检索文件......')
for folder, subfolder, files in os.walk(SourceFolder) :
    for fname in files :
        if fname.endswith('.pdf'): #此处PDF可换成其它文件类型
            print('正在复制:%s' % (folder + fname))
            shutil.copy(fname,DestinationFolder)

print('检索完成!')

二、删除不需要的文件:
编写一个程序,遍历一个目录树,查找特别大的文件和文件夹,比如说,超过100MB的文件,将这些文件的绝对路径打印到屏幕上。

#!python3
import tkinter as tk, os
from tkinter import filedialog
root = tk.Tk()
root.withdraw()

SourceFolder = filedialog.askdirectory(title = '请选择要检索大文件的磁盘或文件夹:')  #获取文件夹
while True :
    try :
        FileSize = int(input('请输入检索的最小文件大小(MB)'))
        print('\n')
        break
    except ValueError :
        print('只能输入整数数值,不能输入其它字符 !')
        continue

if len(SourceFolder) == 0 :
    print('未找到源文件夹!程序中止。')
    sys.exit()

os.chdir(SourceFolder)
i = 0
m = 0

for folder, subfolders, myfiles in os.walk(SourceFolder) :
    i += 1
    for eachfile in myfiles :
        m += 1
        filename = folder +'/'+ eachfile
              
        myfilesize = os.path.getsize(filename)/1024/1024
        if myfilesize >= FileSize :
            print('超大文件:%s' % filename)
            print('文件大小为:%s MB' % str(round(myfilesize,2)))

print('\n检索完成!共检索'+str(i)+'个文件夹,'+str(m)+'个文件。')

猜你喜欢

转载自blog.csdn.net/any1where/article/details/128400654