Python自动化管理电脑文件及文件夹

目录

 

一、输出目录所在的文件以及文件夹

二、遍历、搜索文件及查询文件信息

三、创建临时文件及文件夹

四、批量创建、复制、移动、删除、重命名文件及文件夹

五、创建和解压压缩包


一、输出目录所在的文件以及文件夹

import os

print(os.getcwd())#获得当前文件的地址
print(os.path.join('MyProjects','AI'))#让Python自动处理路径连接
for item in os.listdir():#列出该文件下的所有文件
	print(item, os.path.isdir(item))#循环一遍看谁是文件谁是文件夹

#os.scandir(指定的绝对路径或者相对路径)
for file in os.scandir():
	print(file.name, file.is_dir())

二、遍历、搜索文件及查询文件信息

  • 字符串A.startswith(字符串B):字符串A是否以字符串B开头
  • 字符串A.endswith(字符串B):字符串A是否以字符串B结尾
  • os.walk(指定的绝对路径或者相对路径)
  • dripath是文件路径
  • files是dirpath这个文件夹里的文件列表
  • print(glob.glob('*.py'))#文件搜索匹配 
  • print(fnmatch.fnmatch('makerbean','m*an'))#匹配文件名
import os
import glob
import fnmatch
import datetime
'''
第一、
			#dirnames是dirpath这个文件夹下的子文件列表
for dirpath, dirnames, files in os.walk('./'):#把文件夹里的文件夹里的文件夹的文件都找出来
	print(f'发现文件夹{dirpath}')#dripath是文件路径
	print(files)#files是dirpath这个文件夹里的文件列表

'''
'''
第二、
#字符串A.startswith(字符串B):字符串A是否以字符串B开头
#字符串A.endswith(字符串B):字符串A是否以字符串B结尾
print('makerbean'.startswith('abc'))
print('makerbean'.endswith('bean'))
'''
#print(glob.glob('*.py'))#文件搜索匹配 
#print(fnmatch.fnmatch('makerbean','m*an'))#匹配文件名
that_time = datetime.datetime.formtimestamp(1567764428)
print(that_time)

三、创建临时文件及文件夹

  • from tempfile import TemporaryFile #创建临时文件存储数据
from tempfile import TemporaryFile #创建临时文件存储数据
from tempfile import TemporaryDirectory

#open,readlines(),close()
'''
#读取文件
with open('file1.txt','r',encoding='utf-8') as f:
	text = f.readlines()
	print(text)

#写入文件
# 'w'换成'a':如果存在文件,会接着里面的内容后面继续写入
with open('file2.txt','w',encoding='utf-8') as f:
	text = '第一行内容\n第二行内容\n'
	f.write(text)
	f.write('第三行')

#创建临时文件存储数据
with TemporaryFile('w+') as f:  # 'w+'表示写入及读取文件
	f.write('Hello毕老师!')
	f.seek(0)					# .seek(0)表示回到文件开头位置
	data = f.readlines()		# 程序运行完后会自动删除临时文件
	print(data)
'''
#创建临时文件夹
with TemporaryDirectory() as tmp_folder:
	print(f'临时文件夹已创建:{tmp_folder}')

四、批量创建、复制、移动、删除、重命名文件及文件夹

  • shutil.copy(复制文件,要复制的位置)
  • shutil.copytree(要复制的文件夹,要复制到的新文件夹位置)
  • shutil.move(要移动的文件夹/文件夹,要移动的位置)
  • os.rename(要重命名文件/文件夹,新名字)
  • os.remove(要删除的文件)
  • shutil.rmtree(要删除的文件夹)
     
import os
import shutil

if not os.path.exists('新文件夹'): #检测该文件夹是否存在
	os.mkdir('新文件夹') #创建文件夹

#shutil.copy(复制文件,要复制的位置)
shutil.copy('file.txt','./新文件夹')
shutil.copy('file.txt','/新文件夹/new_file.txt')#第二个参数写到某个文件路径,复制到这个路径并且重命名

#shutil.copytree(要复制的文件夹,要复制到的新文件夹位置)
shutil.copytree('新文件夹','这是一个新文件夹')#新文件夹不能存在

#shutil.move(要移动的文件夹/文件夹,要移动的位置)
shutil.move('file2.txt','这是一个新的文件夹/file3.txt')

#os.rename(要重命名文件/文件夹,新名字)
#os.remove(要删除的文件)
#shutil.rmtree(要删除的文件夹)

五、创建和解压压缩包

  • 将所有文件都提取出来 .extractall(path=解压到哪个位置,pwd=b'密码')

  • 创建压缩包zipobj.write(待压缩文件名)

import zipfile
#读取压缩包内文件
with zipfile.ZipFile('这是一个压缩包.zip','r') as zipobj:
	for filename in zipobj.namelist():
		info  = zipobj.getinfo(filename)#获取文件中的文件信息
		new_filename = filename.encode('cp437').decode('gbk')#处理压缩包里的中文
		print(new_filename,info.file_size,info.compress_size)

#解压压缩包
with ziofile.ZipFile('这是一个压缩包.zip','r') as zipobj:
	zipobj.extract('file1.txt','C:')

#中文乱码解决办法
for file_name in zipobj.namelist:
	correct_path = file_name.encode('cp437').decode('gbk')

#将所有文件都提取出来 .extractall(path=解压到哪个位置,pwd=b'密码')

#创建压缩包zipobj.write(待压缩文件名)
file_list = ['lesson1.py','lesson2.py','lesson3.py','file1.txt']
with zipfile.ZipFile('这是程序创建的压缩包.zip','w') as zipobj:
	for file in file_list:
		zipobj.write(file)

	

 

你可能感兴趣的:(Python办公自动化)