【Python学习笔记】Python入门之文件读写

举报
孙小北 发表于 2021/12/09 22:35:18 2021/12/09
【摘要】 Python是一种解释型的、面向对象的、带有动态语义的高级程序设计语言,本节主要总结Python入门之文件读写:open(),read(),readline(),write(),close()

简单读写文件

open() 将会返回一个 file 对象。

open(filename, mode)

filename:包含了你要访问的文件名称的字符串值。

mode:决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)

注:文档操作完成后一定要记得关闭

常用模式:

r    以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式

rb    以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。    

r+    打开一个文件用于读写。文件指针将会放在文件的开头。    

rb+    以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。    

w    打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。    

wb    以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。   

 w+    打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。    

wb+    以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。    

a    打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。    

ab    以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。   

a+    打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。   

ab+    以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。    

# 打开文件
file = open('test.txt', 'w')
# 写入内容
file.write("欢迎来到小望云北屋 \n唯一网址:www.xiaowangyun.com")
# 关闭文档
file.close()

注: mode 可以是 'r' 如果文件只读, 'w' 只用于写 (如果存在同名文件则将被删除), 和 'a' 用于追加文件内容; 所写的任何数据都会被自动增加到末尾. 'r+' 同时用于读写。 mode 参数是可选的; 'r' 将是默认值。

文件对象的方法


f.read()

为了读取一个文件的内容,调用 f.read(size), 这将读取一定数目的数据, 然后作为字符串或字节对象返回。

size 是一个可选的数字类型的参数。 当 size 被忽略了或者为负, 那么该文件的所有内容都将被读取并且返回。

file = open('test.txt', 'r')
str = file.read()
print(str)
file.close()


输出:


欢迎来到小望云北屋 

唯一网址:www.xiaowangyun.com

f.readline()

f.readline() 会从文件中读取单独的一行。换行符为 '\n'。f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。

file = open('test.txt', 'r')
str = file.readline()
print(str)
file.close()

输出:欢迎来到小望云北屋


f.readlines()


f.readlines() 将返回该文件中包含的所有行。

如果设置可选参数 sizehint, 则读取指定长度的字节, 并且将这些字节按行分割。

file = open('test.txt', 'r')
str = file.readlines()
print(str)
file.close()

输出:

['欢迎来到小望云北屋 \n', '唯一网址:www.xiaowangyun.com']


f.write()

f.write(string) 将 string 写入到文件中, 然后返回写入的字符数。

# 打开文件
file = open('test.txt', 'w')
# 写入内容
num= file.write("欢迎来到小望云北屋 \n唯一网址:www.xiaowangyun.com")
# 关闭文档
file.close()
print(num)

输出:35

如果要写入一些不是字符串的东西, 需要str进行转换:

file = open('test.txt', 'w')
site = ('小望云', 'www.xiaowangyun.com')
num = file.write(str(site))
file.close()


f.close()

在文本文件中 (那些打开文件的模式下没有 b 的), 只会相对于文件起始位置进行定位。

当你处理完一个文件后, 调用 f.close() 来关闭文件并释放系统的资源,如果尝试再调用该文件,则会抛出异常。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。