博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第九篇 文件操作
阅读量:5234 次
发布时间:2019-06-14

本文共 2571 字,大约阅读时间需要 8 分钟。

1.文件操作步骤

  1.打开文件

  2.读写文件

    读:将文件内容读入到内存

    写:将内存内容写入到文件

  3.关闭文件

2.Python中操作文件的函数/方法

函数/方法 说明
open 打开文件,并且返回文件操作对象
read 将文件内容读取到内存
write 将指定内容写入文件
close 关闭文件

 

 

 

 

 open函数负责打开文件,并且返回文件对象,read/write/close方法都是通过文件对象来调用。

3.read方法(读取文件)

open函数的第一个参数是要打开的文件名,如果文件存在,返回文件操作对象,如果文件不存在,会抛出异常。

read方法可以一次性读入并返回文件的所有内容。

close方法负责关闭文件,如果忘记关闭文件,会造成系统资源消耗,会影响到后续对文件的访问。

1 # 1.打开文件2 file = open("e:/测试文件.txt")3 # 2.读取文件4 text = file.read()5 print(text)6 # 3.关闭文件7 file.close()

说明:read方法执行后,会把文件指针移动到文件的末尾。在开发时,通常会先编写打开和关闭的代码,然后再编写针对文件的读/写操作。

4.open方法(打开文件)

open方法默认是以只读的方式打开文件,并且返回文件对象。

1 f = open("文件名","访问方式")
访问方式 说明
r 只读模式打开文件,文件不存在,抛出异常
w 只写模式打开文件,如果文件存在会被覆盖,文件不存在,创建新文件
a 追加模式打开文件,如果文件已存在,文件指针会放到文件的结尾,如果文件不存在,创建新文件进行写入
r+ 读写模式打开文件,文件指针在文件的开头,如果文件不存在,抛出异常
w+ 读写模式打开文件,如果文件存在会被覆盖,文件不存在,创建新文件
a+ 读写模式打开文件,如果该文件已存在,文件指针会放在文件的末尾,如果文件不存在,创建新文件进行写入

 

 

 

 

 

 

开发中更多的时候会以只读、只写的方式来操作文件。

1 # 1.打开文件2 file = open("e:/测试文件.txt", "w")3 # 2.写入文件4 file.write("济南冬天很冷\n")5 file.write("济南夏天很热\n")6 # 3.关闭文件7 file.close()

5.b模式

二进制模式,通常用来操作图片,视频等二进制文件,读写的时候是以bytes读写的,因此获取的是一个bytes而不是字符串,需要自己指定编码。

1 # -*- coding:utf-8 -*- 2  3 s = "hello world" 4  5 # file = open("d:\\test.txt", "w") 6 # file.write(s)  # 没问题,可以正确写入 7  8 # file = open("d:\\test.txt", "wb") 9 # file.write(s)  # 报错,需要一个bytes类型,但是传入的为str10 11 # TypeError: a bytes-like object is required, not 'str'12 13 b = bytes(s, "utf-8")14 file = open("d:\\test.txt", "wb")15 file.write(b)16 file.close()

6.按行读取文件内容

read方法读取大文件,占用内存,但是readline方法可以一次性读取一行内容,方法执行后,会把文件指针移动到下一行,准备再次读取。

1 # 1.打开文件 2 file = open("e:/测试文件.txt", "r") 3 # 2.读取文件 4 while True: 5     text = file.readline() 6     # 判断是否读到内容 7     if not text: 8         break 9     # 每读取一行的末尾已经有了一个"\n"10     print(text, end="")11 12 # 3.关闭文件13 file.close()

 7.遍历文件

更多时候,我们会将文件对象当做一个迭代器来使用。

1 # -*- coding:utf-8 -*-2 3 4 file = open("d:\\test.txt", "r")5 6 for line in file:7     print(line, end="")

说明:我们在使用文件对象的方法操作文件时,如果文件很小,则使用read方法读取最方便,如果不确定文件的大小,反复使用read(size)也比较不错,如果是配置文件,调用readlines也很方便,很多情况下,使用for循环更好,速度也很快。

8.with关键字

为了防止打开文件后操作过程出现异常或者错误,或者没有close文件,Python提供了with关键字来保证文件会被正常关闭,使用了with关键字,就不需要执行close语句。

1 # -*- coding:utf-8 -*-2 3 4 with open("d:test.txt", "w") as f:5     f.write("hello, world")

9.文件/目录的常用管理操作

在Python中,如果希望实现创建,重命名,删除,改变路径,查看目录内容等功能,需要导入os模块。

文件操作

方法名 说明 示例
rename 重命名文件 os.rename(源文件名,目标文件名)
remove 删除文件 os.remove(文件名)

 

 

 

目录操作

方法名 说明 示例
listdir 目录列表 os.listdir(目录名)
mkdir 创建目录 os.mkdir(目录名)
rmdir 删除目录 os.rmdir(目录名)
getcwd 获取当前目录 os.getcwd()
chdir 修改工作目录 os.chdir(目标目录)
path.isdir 帕努单是否是文件 os.path.isdir(文件路径)

转载于:https://www.cnblogs.com/zhuzhaoli/p/10365406.html

你可能感兴趣的文章
Spring-hibernate整合
查看>>
c++ map
查看>>
exit和return的区别
查看>>
discuz 常用脚本格式化数据
查看>>
洛谷P2777
查看>>
PHPStorm2017设置字体与设置浏览器访问
查看>>
SQL查询总结 - wanglei
查看>>
安装cocoa pods时出现Operation not permitted - /usr/bin/xcodeproj的问题
查看>>
GIT笔记:将项目发布到码云
查看>>
JavaScript:学习笔记(7)——VAR、LET、CONST三种变量声明的区别
查看>>
JavaScript 鸭子模型
查看>>
SQL Server 如何查询表定义的列和索引信息
查看>>
GCD 之线程死锁
查看>>
NoSQL数据库常见分类
查看>>
一题多解 之 Bat
查看>>
Java 内部类
查看>>
{面试题7: 使用两个队列实现一个栈}
查看>>
【练习】使用事务和锁定语句
查看>>
centos7升级firefox的flash插件
查看>>
Apache Common-IO 使用
查看>>