# 文件操作
'''
文件上传
rb 二进制方式读
wb 二进制方式写
系统函数 open()
'''
#读取文本 rt 默认
stream = open(r'E:\Dockerfile.txt')
result = stream.read()
print(result)
#判断文件是否可读readable True False
result = stream.readable()
print(result)
#读取文件 一行一行的读readline()
stream = open(r'E:\Dockerfile.txt')
while True: #循环读
result = stream.readline()
print(result)
if not result:
break
#一次读多行 保存在一个列表 readlines()
result = stream.readlines()
print(result)
# 读一个图片 rb
stream = open(r'E:\oa审批流程.jpg','rb')
result = stream.read()
# print(result)
############################################################
#写文件
'''
mode 是’w‘ 表示写操作,覆盖写
mode 是’a‘ 表示写操作,追加写
'''
stream = open(r'E:\Dockerfile.txt','w')
s='''
#说明
# 这个是一个java 的构建
'''
stream.write(s)
#writelines 一次加多个, aabbcc 加 \n 换行
stream.writelines(['aa\n','bb\n','cc\n'])
# print(result)
stream.close() #释放资源,释放资源后无法接着往后写
# 用a 打开表示追加
stream = open(r'E:\Dockerfile.txt','a')
s='''
#说明
# 这个是一个java 的构建
'''
stream.write(s)
#writelines 一次加多个, aabbcc 加 \n 换行
stream.writelines(['aa\n','bb\n','cc\n'])
# print(result)
stream.close()
############################################、
# 文件复制
'''
原文件 E:\Dockerfile.txt
目标文件 D:\Dockerfile.txt
with 结合open 使用,可以帮助我们自动释放资源
'''
# stream = open(r'E:\Dockerfile.txt','rb')
with open(r'E:\Dockerfile.txt','rb') as stream:
result = stream.read()
with open(r'D:\Dockerfile.txt','wb') as wstream:
wstream.write(result)
print('文件复制完成')
import os
#获取当前程序所在路径
print(os.path.dirname(__file__))
path = (os.path.dirname(__file__))
print(path)
#把 文件 保存在 我当前的目录里面 (join)
with open(r'D:\Dockerfile.txt','rb') as strea:
result = strea.read() #读取文件内容
path = (os.path.dirname(__file__))
path1 = os.path.join(path,'a1.txt')
with open(path1,'wb') as wstrae:
wstrae.write(result)
'''
os.path:
os.path.dirname(__file__) 当前文件目录
os.path.join 返回是一个拼接后的新路径
os.getcwd() 获取当前目录
os.listdir() 浏览文件夹
os.mkidr() 创建文件夹
os.rmdir() 删除文件夹
os.remove() 删除文件
os.chdir() 切换目录
'''
#截取最后的文件名
file = r'D:\go\boss\Dockerfile.txt'
ff=file[file.rfind('\\')+1:]
print(ff)
'''
人怕出名,猪怕壮,除了喝酒没强项
东风吹,战鼓擂,喝酒这块没怕过谁
只要感情好,不管喝多少
只要感情深,那假的都当真
只要感情有,喝啥都是酒
爱要怎么说出口,大哥来我给你倒杯酒
一年过一回 ,一回老一岁,最多100回,不知剩几回,珍惜每一回,感谢大家陪
'''
'''
os 模块
absolute 绝对的 判断路径是否是绝对
r'..\boss\Dockerfile.txt' .. 代表上一级,和
'''
r = os.path.isabs(r'D:\go\boss\Dockerfile.txt')
print(r)
#得到路径和文件名
file = r'D:\go\boss\Dockerfile.txt'
result = os.path.split(file)
print(result) #('D:\\go\\boss', 'Dockerfile.txt')
print(result[0])
print(result[1])
#得到文件的扩展名
result = os.path.splitext(file)
print(result[1]) # .txt
# 查看文件大小 字节单位
file = r'D:\Dockerfile.txt'
size = os.path.getsize(file)
print(size)
#获取目录下的所有文件
all = os.listdir(r'D:\wendang')
print(all) #保存在列表
#创建文件夹,文件夹存在继续创建报错,
#判断文件是否存在,返回Fales 则创建
if not os.path.exists(r'E:\wendang'):
os.mkdir(r'E:\wendang')
# f = os.mkdir(r'E:\wendang')
#删除文件夹,rmdir ,目录存在文件则会报错
# f = os.rmdir(r'E:\wendang')
#删除文件
# os.remove(r'E:\wendang\a.txt')
#删除目录,及目录里面的文件
# path = r'D:\nginx-1.18.0\conf'
# filelist = os.listdir(path)
# for file in filelist:
# # 把路径和文件名拼接起来,得到完整的路径,再删除
# path1 = os.path.join(path,file)
# os.remove(path1)
# else:
# os.rmdir(path)
# print('删除成功')
# 切换目录
f = os.chdir(r'D:\nginx-1.18.0\conf') # 切换位置
path = os.getcwd() #得到当前文件路径位置
print(path)
# 文件复制 封装函数
# src 源文件路径 dest 目标文件路径
def copy(src,dest):
if os.path.isdir(src) and os.path.isdir(dest):
#得到所有的文件 []
filelist=os.listdir(src) #['1.txt','2.txt']
#遍历列表
for file in filelist:
#拼接路径 ,判断该文件是否是文件夹
path = os.path.join(src,file) #C:/aa/bb/
#判断 file 是否是目录,是则继续
if os.path.isdir(path): #path = C:/aa/bb/
dest1 = os.path.join(dest,file)
os.mkdir(dest1)
copy(path,dest1)
else:
#不是文件夹直接进行复制
with open(path,'rb') as rstream:
container = rstream.read()
path1 = os.path.join(dest,file)
with open(path1,'wb') as wstream:
wstream.write(container)
else:
print('复制完成')
# 调用函数
src_path = r'D:\nginx-1.18.0'
dest_path = r'E:\aa'
copy(src_path,dest_path)