使用Python模块实现文件的操作

本文介绍使用Python OS模块计算指定路径下所有文件的总大小,包括递归处理子目录。同时,展示了如何将特定大小的文件从源目录迁移至另一目录,并在迁移后删除原文件,涉及os.makedirs, shutil.copyfile及os.remove等函数的应用。

利用Python模块计算一个路径下文件的大小

计算一个路径下文件的总大小,如:计算D:\01文件夹的大小
计算D:\01文件夹的大小,将该文件夹下所有文件的大小进行相加计算
OS模块:
os.listdir(path)	 返回指定路径下所有的文件名和目录名
os.isdir(path)	 判断给定的路径是否是文件
os.isfile(path)	判断给定的路径是否是目录名
os.exists(path)	 判断给定的路径是否存在
os.path.getsize(path)	 返回指定文件的大小
os.path.join(path1,path2) 	路径拼接

代码实现:

import os
num = 0
def getSize(path):
	global num 
	# 判断给出的路径是否存在,如果不存在,则返回
	if not os.path.exists(path):
		return '给出的路径目录名不存在'
	# 获取给定路径下所有的文件名和目录名
	filename = os.listdir(path)
	# 对给定路径下所有的文件名和目录名进行遍历,并判断
	for i in filename:
		new_path = os.path.join(path,i)
		# 进行判断,是文件计算大小并累加
		if os.path.isfile(new_path):
			filesize = os.path.getsize(new_path)
			size_num += filesize
		else:
			filesize = getSize(new_path)
	# 返回计算的结果
	return size_num 
if __name__ == '__main__':
	path = 'D:\01'
	size_num = getSize(path)
	print(size_num)	

注意:递归返回时还是计算目录下文件的大小。

利用Python实现文件的迁移与移除

实现一个目录下文件的归类;将文件大小在5KB以内的文件迁移到另外一个文件夹下。
5KB =  1024 * 5 
OS模块和shutil模块:
os.makedirs(path)	创建文件夹
os.remove(path)	删除指定路径的文件
shutil.copyfile(path1,path2)	 复制文件到另外一个路径

代码实现:

import os
import shutil

def main():
	# 判断迁移文件夹是否存在,若不存在,创建
	if not os.path.exists("D:\文件安装\酷我音乐\MISIC\周杰伦\LRC"):
		os.makedirs("D:\文件安装\酷我音乐\MISIC\周杰伦\LRC")
	# 文件夹的路径
	file_path = "D:\文件安装\酷我音乐\MISIC\周杰伦"
	# 获取路径下的文件名组成的列表
	filename = os.listdir(file_path)
	# 遍历filename列表
	for i in filename:
		# 组成新的路径
		new_path = os.path.join(file_path,i)
		# 判断该路径是文件还是文件夹,若是文件,进行大小的判断
		if os.path.isfile(new_path):
			if os.path.getsize(new_path) <= 5000:
				# 将小于5000的文件迁移到迁移文件夹中
				save_path = os.path.join(D:\文件安装\酷我音乐\MISIC\周杰伦\LRC",i)
				# 文件迁移
				shutil.copyfile(path,save_path)
				# 删除原始目录下被迁移的文件
				os.remove(path)
	print('文件迁移完成...')
if __name__ == '__main__'
	main()

		
文件的迁移和删除代码,我实现的是文件中音乐文件和歌词文件混在了一个文件夹下,通过代码把音乐文件和歌词文件
进行区分;将歌词文件充该文件夹中复制出来,然后删除该文件夹中的歌词文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值