py 文件操作

# 文件操作
'''
文件上传
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)







 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值