【python学习13】基础的文件和目录操作

 (一)编码格式的介绍

 

修改py文件的编码格式:在程序第一行写 #encoding=gbk 修改为gbk编码格式 

(二)文件的读写原理(读取磁盘文件中的内容)

 

file=open("a.txt","r")  #"r"表示read
print(file.readlines()) #readlines()会将文本文件中的内容读出且以列表形式展示
file.close()

 (三)常用的文件打开方式

source_file=open("logo.png",rb)    #源文件以读的二进制方式读取
target_file=open("copy.png",wb)    #目标文件以写的二进制文件写,目标文件是copy.png

target_file.write(source_file.read())
source_file.close()
target_file.close()

 (四)文件对象的常用方法

file=open('a.txt','r')
print(file.read())
print(file.readline())
print(file.readlines())#作为列表返回

tell()方法指针位置从0开始算

flush()方法之后仍然可以向文件写入内容(因为没有关闭文件),但close()方法之后不行

(五)with语句(上下文管理器)

①若一个类中实现了特殊方法__enter__()和__exit__(),则该类遵守了上下文管理协议,该类的实例对象称为上下文管理器 

②离开运行时上下文,会自动调用上下文管理器的特殊方法__exit__()进行退出

with open("c.txt","r") as file:    #相当于file=open("c.txt","r")
    print(file.read())    #不用再写file.close(),因为离开with语句块时自动关闭文件资源
#with语句实现文件的复制
with open("a.png","rb") as source_file:
    with open("b.png","wb") as target_file:
        target_file.write(source_file.read())

 (六)目录操作

import os

os.system("notepad.exe")    #打开记事本,也可在WIN中输入notepad
os.system("calc.exe")    #打开计算器,也可在WIN中输入

#os模块也可直接调用可执行文件

 1,os模块操作目录相关函数

 

该部分函数和ubuntu系统的终端命令又相似 

该部分一般用在办公自动化

import os

print(os.getcwd())

lst=os.listdir("../chap15")    #listdir()函数返回列表,".."表示上一级目录
print(lst)

os.mkdir(newdir)    #创建目录
os.makedirs("/a/b/c")    #创建多级目录

os.rmdir(newdir)    #删除目录
os.removedirs("a/b/c")    #删除多级目录

2,os.path模块操作目录相关函数

import os.path
print(os.path.abspath('demo3.py'))#获取demo3.py文件的绝对路径
print(os.path.exists('demo13.py'),os.path.exists('12.txt'))#结果返回True/False
print(os.path.join('E:\\python','demo6.py')) #前后进行拼接即E:\python\demo6.py
print(os.path.split('E:\\vippython\\chapter11\\demo.py'))#将文件路径和文件名分开即('E:\\vippython\\chapter11','demo.py')

print(os.path.splitext('demo4.py'))#输出{'demo4','.py'}

print(os.path.basename('E:\\vippython\\chapter11\\demo.py'))#输出demo.py,从路径中提取文件名

print(os.path.dirname('E:\\vippython\\chapter11\\demo.py'))#输出E:\vippython\chapter11,从路径中提取目录,不包括文件名

print(os.path.isdir('E:\\vippython\\chapter11\\demo.py'))#输出False,因为demo.py不是路径名

(七) 实际案例代码

办公自动化 中刚开始学的就是 文件处理 

#列出指定目录下的所有.py文件
import os
path=os.getcwd()  #获取当前路径,当然也可以指定相应路径
lst=os.listdir(path)
for filename in lst:
    if filename.endswith('.py'):
        print(filename)
#逐次获取主目录和子目录下的对应目录路径,目录名,文件名
import os
path=os.getcwd()#获取当前路径,也可以指定路径
lst_files=os.walk(path)
for dirpath,dirname,filename in lst_files:  #会逐层逐次访问主目录和子目录下的路径,目录名,文件名
    print(dirpath)  #输出当前目录的路径
    print(dirname)  #输出当前目录下的子目录名
    print(filename) #输出当前目录下的文件名不是子目录名

 第二个代码块中,用到了 os模块中重要的方法walk(), 该方法可以递归遍历主目录下的文件以及主目录中子目录下的文件

(八)知识点总结

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值