Python学习笔记(五)——文件操作

做编程最重要的是思想,编码只是一个工具。


一、文件的使用流程

1.打开文件

(1)open()
*相对路径:相对于哪一个目录下面的指定文件
(2)模式
a.r
以只读的方式打开文件
文件的指针将会放在文件的开头
如果文件不存在的话会报错
b.w
以只写方式打开文件
文件的指针将会放在文件的开头
如果文件不存在,会自动创建一个新文件
c.a
以追加方式(只写)打开文件
文件的指针将会放在文件结尾
如果文件不存在,会自动创建一个新文件
d.增加b
rb、wb、ab
处理二进制文件
e.增加+
r+、w+、a+、rb+、rw+、ra+
代表都是以读写模式进行打开

2.读写操作

1.定位
f.seek(偏移量,[0,1,2])
f.tell()
0 默认开头
1 当前位置
2 文件末尾
*文本文件的操作模式下(不带b),只能写0
*如果想要写1/2 必须在二进制文件操作模式下
2.读
f.read(字节数)
f.readline(limit)
f.readlines()
读取所有的值并把他们遍历成一个列表
好处:节省内存空间
for in
可以遍历f本身或者行列表
迭代器
*判断是否可读
读取前加一个容错处理 if f.readable()
*注意
(1)一般文件特别大的时候,可以用readline方法 按行加载,可以节省内存 但相比其他两个读取方法,性能较低
(2)其他两个方法,一次性读取文件所有内容,虽然占用内存,但处理性能比较高。
3.写
f.write()
容错处理 if f.writeable()
4.关闭
f.close
可在前面写f.flush()立即清空缓冲区内容到磁盘文件。

二、文件的相关操作

1.模块

import os

2.重命名

1.重命名文件、目录、文件夹
os.rename() 修改单级 目录/文件 名称
os.renames() 修改多级 目录/文件 名称
2.删除
删除文件
os.remove(“文件路径”) *文件不存在会报错
删除目录
os.rmdir(path)
不能递归删除目录 如果文件夹为空,会报错
os.removes(path)
可以递归的删除目录 如果文件夹为空 会报错

3.创建目录

os.mkdir(“文件夹名称”[,model]) 不能递归创建
*model——数字模式权限 默认值八进制777
(1)文件拥有者
(2)同组用户
(3)其他用户

4.查看改变列举目录

import os
#获取当前目录
os.getcwd()
#改变默认目录
os.chdir("目标目录")
#获取目录内容列表
os.listdir("./") #当前目录
os.listdir("../") #当前目录的上一级目录

该处使用的url网络请求的数据。


案例

文件复制

1.要求 将一个文件复制到另一个文件中
2.步骤分析

#1.只读模式,打开要复制的文件
#只写模式,打开副本模式
source_file=open("d.txt","r")
dst_file=open("d.bat.txt".a)
# 2.从源文件中读取内容
# 写入目标文件中
content=source_file.read()
dst_file.write(content)
# 3.关闭源文件和目标文件
source_file.close()
dst_file.close()

注意要编码统一

文件分类 并生成文件清单

1.要求
给定一批文件,按照文件后缀名,划分不同的文件夹
生成txt格式的文件清单

#获取所有的文件名称列表
import os
import shutil
path="files"
if not os.path.exists():
    exit()
file_list=os.listdir("flies")

#1.遍历所有的文件(名称)
for file_name in file_list:
      print(file_name)
      #2.分解文件的后缀名
      #2.1获取最后一个.的索引位置
      index=file_name.rfind(".")
      if index=-1
           continue
      print(index)
      #2.2 根据索引位置,当前起始位置,来获取后续的所有字符串内容
      extension=file_name[index+1:]
      print(extension)
      #3.查看一下,是否存在同名的目录
      #4.如果不存在这样的目录——>直接创建一个目录
      if not os.path.exists(extension):
          os.mkdir(extension)
       shutil.move(file.name,extension)

注意容错处理 、切换文件夹

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值