Python 文件操作

什么是文件 ?

这是文件

 

这是计算机中的文件

 

文件的作用

  • 好记性不如烂笔头

不仅人的大脑会遗忘事情,计算机也会如此,比如⼀个程序在运⾏过程中⽤了九牛二虎之力终于计算出了结果,试想⼀下如果不把这些数据存放起来,相⽐重启电脑之后,哭都没地⽅哭了可见,在把数据存储起来有做么⼤的价值 。

使⽤⽂件的⽬的:

  • 把⼀些存储存放起来,可以让程序下⼀次执行的时候直接使用,而不必重新制作⼀份,省时省力 。

 

 

Python文件

文件对象是Python代码调用电脑上存放在外部文件的主要接口,能够用于读取和写入文本记录、音频片段、Excel文档、保存邮件以及任何保存在电脑上的东西。

下面是一些Python文件对象的基本操作:

文件的打开与关闭

1. 打开⽂件

python,使⽤open函数,可以打开⼀个已经存在的文件,或者创建⼀个新文件

  • open(⽂件名,访问模式)

示例如下:

# w 写⼊模式 r 读取模式
f = open('a.txt', 'w')

访问模式 说明:
r 只⽤于读取, 默认模式。⽂件不存在,会报错。
w 只⽤于写⼊。⽂件存在则先清空内容, ⽂件不存在,创建新⽂件。
a 只⽤于写⼊。⽂件存在则追加内容, ⽂件不存在,创建新⽂件。
r+ ⽤于读写。⽂件不存在,会报错。
w+ ⽤于读写。⽂件存在则先清空内容, ⽂件不存在,创建新⽂件。
a+ ⽤于读写。⽂件存在则追加内容, ⽂件不存在,创建新⽂件。
rb ⼆进制格式的只读操作。后续⽹络课程中具体讲解。
wb ⼆进制格式的只写操作。后续⽹络课程中具体讲解。
ab ⼆进制格式的追加操作。后续⽹络课程中具体讲解。 

2. 关闭⽂件

  • close( )

示例如下:

# 新建⼀个⽂件,⽂件名为:123.txt
f = open('123.txt', 'w')

# 关闭这个⽂件
f.close() 

 

3.自动关闭文件

文件操作往往需要打开,处理,关闭,如果忘记关闭,就会占用资源造成浪费。python为我们提供with 命令,帮助我们在处理文件后自动进行关闭回收。

with如何工作?

  • 紧跟with后面的语句被求值后,返回对象的'__enter__()'方法被调用,这个方法的返回值将被赋值给as后面的变量.
  • 当with后面的代码块全部执行完之后,将被调用前面返回对象的__exit__()方法.

with原理示例:

# -*- coding: utf-8 -*-
# 自定义 Context Manager
class File(object):
   def __init__(self, filename, mode):
     # 设定文本名与打开方式
     self.filename = filename
     self.mode = mode
 
   # 资源配置
   def __enter__(self):
     print("打开文本:" + self.filename)
     self.open_file = open(self.filename, self.mode)
     return self.open_file
 
   # 资源回收(关闭文本)
   def __exit__(self, type, value, trace):
     print("关闭文本:" + self.filename)
     self.open_file.close()

with 使用:

with open("123.txt", "w") as f:

    pass # 执⾏完缩进代码, 会⾃动关闭⽂件 

 

文件的读写

1. 写数据(write)

# 使⽤write()可以完成向⽂件写⼊数据
# 打开⽂件 w write 写⼊ r read 读取
f = open("123.txt", "w")

# 写⼊数据
f.write("hello world")

# 关闭⽂件
f.close() 

 

2. 读数据(read)

# read(n) n为读取的字符数, 不设置则全部读取

with open("123.txt", "r") as f:
    content = f.read() 

 

3. 读数据(readline

readline() 每次读取⼀⾏数据

with open("123.txt", "r") as f:
    content = f.readline()
    print(content, end="") 

 

4. 读数据(readlines

readlines() ⼀次全部读出, 返回列表 (每⾏内容是⼀个元素)

with open("123.txt", "r") as f:
    content = f.readlines()
    print(content) 

 

文件的定位读写

⽂件的读写都会改变⽂件的定位

f.tell() :可以查看⽂件的当前定位

f.seek(offset, whence)

  • offset 基于whence做偏移
  • whence 0 移动定位到文件开头 1定位不变 2移动定位到文件结尾
  • 只能对文件开头设置偏移(whence=1或者2,offset只能为0)
with open("123.txt", "w+") as f:
    # 查看⽂件的当前定位
    # print(f.tell())
    f.write("hello python")
    # print(f.tell())

    # 改变⽂件的定位 先移动定位到⽂件开头,再将定位向后移动2个字节
    f.seek(2, 0)
    content = f.read()
    print("读取的内容为%s" % content)

 

 

文件的其他相关操作

有些时候,需要对⽂件进⾏重命名、删除等⼀些操作,pythonos模块中有这些功能

1. ⽂件重命名

os模块中的rename()可以完成对⽂件的重命名操作

  • rename(需要修改的文件名, 新的文件名)
import os
os.rename("毕业论⽂.txt", "毕业论⽂-最终版.txt") 

 

2. 删除⽂件

os模块中的remove()可以完成对文件的删除操作

  • remove(待删除的文件名)
import os
os.remove("毕业论⽂.txt") 

 

3. 创建文件夹

import os
os.mkdir("张三") 

 

4. 获取当前目录

import os
os.getcwd() 

 

5. 改变默认目录

import os
os.chdir("test") # 跳转到当前路径的test⼦⽬录中 

 

6. 获取目录列表

import os
os.listdir() 

 

7. 删除文件夹

import os
os.rmdir("张三") 

目录非空不能使用,可以使用递归的方式进行删除

 

更多:https://blog.csdn.net/Scrat_Kong/article/details/90257118

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值