整理博客不易,如需转载请注明出处 !
手动反爬:【Python自动化办公】文件管理
https://blog.csdn.net/Lyun911/article/details/114438189
os.mkdir()
/ os.path.exists()
import os
import shutil
if not os.path.exists('新文件夹'):
os.mkdir('新文件夹')
os.makedirs()
import os
os.makedirs('第一层/第二层/第三层')
# 第一层/第二层 文件夹如果有,不会报错
# 但是如果已经有第三层文件夹就会报错
f = open('test.txt', 'r', encoding = 'utf8')
text = f.readlines() # 输出:list
print(text)
f.close()# 忘记写 f.close() 会出错
with open('./1.txt', 'a+', encoding='utf-8') as f:
f.seek(0)# 用这个方法可以将cursor游标放在起始位置,否则a+方法默认在最后
lines = f.readlines() # 输出:list
for line in lines:
print(line)
with open('./2.txt', 'a+', encoding='utf-8') as f:
f.writelines(lines)
os.rename('old_folder', 'new_folder')
os.rename('old_file.txt', 'new_file.txt')
os.remove('delete.txt')
# 只能删除文件,不能删除文件夹
shutil.rmtree('要删除的文件夹')
# 把文件复制到目录
shutil.copy('file1.txt', './新文件夹')
# 把文件复制到目录,并且重命名
shutil.copy('file1.txt', './新文件夹/new_name.txt')
shutil.copytree('folders', 'new_folders')
# 新文件夹不能已经存在
# 会将文件夹内所有的文件一起复制过去
shutil.move('file1.txt', '新文件夹/new_name.txt')
# 移动到新文件夹,并且重命名
shutil.move('file1.txt', '新文件夹/')
shutil.move('要移动的文件夹', '新文件夹/')
# 如果要移动到某个文件夹后面,第二个参数最后记得加'/'
from tempfile import TemporaryDirectory
from tempfile import TemporaryFile
with TemporaryDirectory() as tmp_folder:
from tempfile import TemporaryFile
with TemporaryFile('a+') as f: # 因为是临时文件夹,所以 w+ 比较合适
f.write('Hi')
f.seek(1) # seek() 使用方式类似于切片器,从第某个字符开始 写入/读取
data = f.readlines() # 如果 f.write() 之后没有将光标移动到前面,则读取的时候没有内容
print(data) # 输出:list
from tempfile import TemporaryDirectory
with TemporaryDirectory() as tmp_folder:
print(f'临时文件夹已创建{tmp_folder}')
编写一个Python程序,要求
1.找出当前目录下所有 .pdf文件
2.将所有文件重命名,在原本文件名的开头加上最后修改日期
1.比如原来是 a.pdf , 则改为 2021-03-06 a.pdf
3.创建一个新文件夹叫 backup
4.将所有重命名后的文件都移动到 backup文件夹里面
import os
import shutil
from datetime import datetime
# 先创建一个备份文件夹
backup_dir = './backup/'
if not os.path.exists(backup_dir):
os.mkdir(backup_dir)
print('开始备份'.center(50, '-'))
for f in os.scandir('./'):
if f.name[-4:] == '.pdf':
# 找出文件的创建日期,用 .date() 格式化为 yyyy-mm-dd
f_mtime = datetime.fromtimestamp(f.stat().st_mtime).date()
# 给文件起一个新名字,复制到备份文件夹中,之后删除
# 如果直接剪切,中途结束程序可能导致文件损坏
new_name = f'{f_mtime}_{f.name}'
os.rename(f.name, new_name)
shutil.copy(new_name, backup_dir)
os.remove(new_name)
print(f'文件【{new_name}】已添加修改日期,并备份至【{backup_dir}】文件夹中')
print('备份结束'.center(50, '-'))