Python基本文件操作

文件操作的作用

思考:什么是文件?

在这里插入图片描述

思考:文件操作包含什么?

答:打开、关闭、读、写、复制…

思考:文件操作的的作用是什么?

答:读取内容、写入内容、备份内容…

总结:文件操作的作用就是把一些内容(数据)存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力

文件的基本操作

文件操作步骤
  1. 打开文件
  2. 读写等操作
  3. 关闭文件
打开文件
语法

在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,语法如下:

f=open(name, mode)
  • name:是要打开的目标文件的路径字符串。

  • mode:设置打开文件的模式(访问模式):只读、写入、追加等。

  • f变量用于接受open 函数返回的对象

打开模式
模式描述
r只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。文件不存在,则会报错(read)
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。(write)
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。(attach)
b二进制格式打开文件 (binary)
+读写模式
  • r/w/a可与b/+组合,rb/wb/ab可与+组合
文件对象方法
语法
f.write(text)
  • f为打开文件时接收到open返回文件对象的变量
  • text为想要写入的字符串

如:

# 1. 打开文件
f = open('diary.txt', 'w')

# 2.文件写入
f.write('今天的任务:睡大觉\n')
f.write('明天的任务:摆大烂\n')
f.write('后天的任务:做大梦\n')
f.write('最终的任务:醒大悟\n')

# 3. 关闭文件
f.close()

注意:

  1. w a模式:如果文件不存在则创建该文件;如果文件存在,w模式先清空再写入,a模式直接末尾追加。
  2. r模式:如果文件不存在则报错。
read()
f.read(num)
  • num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。
readlines()
textlines=f.readlines()
  • textlines用于接受readlines 的返回值——一个由文件每行内容的字符串组成的列表。

如:

f = open('diary.txt')
textlines= f.readlines()

print(textlines)
#['今天的任务:睡大觉\n', '明天的任务:摆大烂\n', '后天的任务:做大梦\n', '最终的任务:醒大悟\n']

for textline in textlines:
    print(textlines)
""" 
今天的任务:睡大觉

明天的任务:摆大烂

后天的任务:做大梦

最终的任务:醒大悟

"""
# 关闭文件
f.close()
readline()
textline=f.readline()
  • readline()一次读取一行内容,返回该行的字符串。

如:

f = open('diary.txt')

textline = f.readline()
print(f'第1行:{textline}')

"""
第1行:今天的任务:睡大觉

"""

for i in range(2,5):
    textline = f.readline()
    print(f'第{i}行:{textline}')
    
"""
第2行:明天的任务:摆大烂

第3行:后天的任务:做大梦

第4行:最终的任务:醒大悟

"""

# 关闭文件
f.close()
seek()

作用:用来移动文件指针。

语法如下:

f.seek(cookie, whence=0)
  • cookie为偏移量,whence为参考位置

whence可取的值

  • 0:文件开头
  • 1:当前位置
  • 2:文件结尾
关闭
f.close()
  • 请务必记得关闭文件

文件和文件夹的操作

os模块

在Python中文件和文件夹的操作要借助os(operating system)模块里面的相关功能,具体步骤如下:

  1. 导入os模块
import os
  1. 使用os模块相关功能
os.fuction()
文件/文件夹的重命名/剪切
os.rename(src, dst)
  • src:source。即旧文件路径字符串。
  • dst:destination。即新文件路径字符串。
  • src重命名或剪切到dst
删除文件
os.remove(path)
  • path为想删除文件的路径字符串
创建文件夹
os.mkdir(path)
  • path 为想创建文件夹的路径字符串

  • make directory的简称

文件夹是否存在
os.path.isdir(path)
  • path是文件夹则返回True ,不是返回False
删除文件夹
os.rmdir(path)
  • path 为想删除文件夹的路径字符串
  • remove directory的简称
获取当前工作目录
cwd_path=os.getcwd()
  • 用于获取当前工作的路径(常用于命令行程序)
  • get current working directory的简称
修改当前工作目录
os.chdir(path)
  • 移动到path,并修改当前工作目录为path
  • change directory的简称
获取某文件夹下所有文件/文件夹名
files=os.listdir(path)
  • 返回一个由path路径文件夹下所有文件/文件夹名组成的列表,这里由files接受
  • list directory的简称
实例–解开某一文件夹

需求:

指定某一文件夹名,将该文件夹删除,但文件夹中的文件/文件夹保留在被删除的文件夹所在目录

import os

def destoryDir(path):
    """解开path路径下的文件夹"""

    #判断path是否是有效文件夹路径·
    if os.path.isdir(path):
        print("开始解开",path,"···")
    else:
        print("错误文件夹路径!")
        return
    
    index=path.rfind("/")
    
    if index==-1:
        #没找到"/",说明是当前目录下的文件夹
        
        files=os.listdir(path)  #获取文件夹下的文件/文件夹
        for file in files:
            now=path+"/"+file  #现在的文件路径
            future=file  #文件路径前进
            os.rename(now,future)  #剪切
        
    else:
        #找到"/",说明不是当前目录下的文件
        
        files=os.listdir(path) #获取文件夹下的文件/文件夹
        for file in files:
            now=path+"/"+file  #现在的文件路径
            future=path[0:index]+"/"+file  #文件路径前进
            os.rename(now,future)  #剪切

    os.rmdir(path)  #删除文件夹
    print("已成功解开!")
            

destoryDir("todestory")

效果:

未解时

在这里插入图片描述
解的过程中
在这里插入图片描述

解之后

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木子希卡利

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值