'''
文件 操作概述
os
绝对路径 :一般从盘符开始,不能跳级、越级 。 路径固定文件就不能移动,另外在迁移过程中比较麻烦
相对路径:不需要从盘符开始,需要找到一个参考点
①同级关系:访问的文件和python代码处于同一个目录,平行关系 ./文件名称 或者直接写文件名称
②上级关系:../访问上一级 如果多级../../../去一层一层防伪码
③下级关系:文件夹名称/访问某个目录下文件
r-w-a三种模式
文件的读取操作:
read()
readlines() 读取文件的内容进行一次性读取,并且返回一个列表
f.seek移动文件指针
'''
# 文件基本操作 open(name,mode) r:只读 w:只写 a:在文章末尾追加
# f = open('python.txt','a',encoding='utf-8')
#
# f.write('\n拒绝躺平,终身学习!')
# # content = f.read()
# # print(content)
# f.close()
# 1、打开文件
# f = open('python.txt', 'r', encoding='utf-8')
# # 2、读取文件
# lines = f.readlines()
# for line in lines:
# print(line, end='')
# # 3、关闭文件
# f.close()
# 移动文件指针
'''
f.seek(offset,whence=0)
offset:开始的偏移量,也就是代表需要移动偏移的字节数
whence:给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
==实际工作中,seek主要用于重置光标到起始位置。==
f.seek(0)
或
f.seek(0, 0)
'''
# python备份操作
'''
接受用户输入的文件名
test.txt ==>text[备份].txt
备份文件写入数据
'''
# # 1.获取用户输入的文件名称
# oldname = input('请输入要备份的文件名称:')
# # 文件名如何获取
# index = oldname.rfind('.')
#
#
# if index > 0:
# filename = oldname[:index]
# # 获取文件后缀
# postfix = oldname[index:]
# # 规划备份文件名
# newname = filename + '[备份]' + postfix
# # print(newname)
# # content = f.read
#
# # 把旧文件内容拷贝到新文件中
# old_f = open(oldname, 'rb')
# new_f = open(newname, 'wb')
#
# while True:
# content = old_f.read()
# if len(content) == 0:
# break
# else:
# new_f.write(content)
# # 关闭文件
# old_f.close()
# new_f.close()
#
# else:
# print('输入文件有误')
os
'''
os模块
os.函数名()
os.rename(旧文件名称,新文件名称) 对文件进行重命名操作
os.remove(要删除文件名称) 对文件进行删除操作
'''
# 导入os模块
import os
import time
# os.rename('python.txt','linux.txt')
# 休眠30s
# time.sleep(30)
# os.remove('python[备份].txt')
'''
os.mkdir(新文件夹名称) 创建一个指定名称的文件夹
os.getcwd() current work directory,获取当前目录名称
os.chdir(切换后目录名称) change directory,切换目录
os.listdir(目标目录) 获取指定目录下的文件信息,返回列表
os.rmdir(目标目录) 用于删除一个指定名称的"空"文件
'''
# 1、使用mkdir方法创建一个images文件夹
if not os.path.exists('images'):
os.mkdir('images')
if not os.path.exists('images/avatar'):
os.mkdir('images/avatar')
# 2、getcwd = get current work directory获取当前工作路径
print(os.getcwd())
# 3、os.chdir,ch = change dir = directory切换目录
os.chdir('images/avatar')
print(os.getcwd())
# 切换到上一级目录 => images
os.chdir('../')
print(os.getcwd())
# 4、使用os.listdir打印当前所在目录下的所有文件,返回列表
print(os.listdir())
# 5、删除空目录
os.rmdir('avatar')
'''
文件夹的递归删除
理论上,其在删除过程中,如果文件夹非空,则自动切换到文件夹的内部,然后把其内部的文件,一个一个删除,当所有文件删除完毕后,返回到上一级目录,删除文件夹本身
'''
# 导入shutil模块
import shutil
# 递归删除非空目录
shutil.rmtree('images')
(今天偷懒了!!!)