例题引导:尝试导入本地的txt文件到python中,并读取该txt文件的第一行内容到一个字符串;将python执行的输出结果保存到本地新建/现有的txt文件中;尝试导入本地的csv文件到python中,并读取csv文件内容;
这道题思路简单,主要是对今天学习内容的应用。
参考答案:
#读取txt
f = open('test.txt',encoding = ‘utf-8’)
line = f.readline()
#新建并存入txt文件:
with open('文件名.txt','a',encoding='utf-8') as a:
a.write()
#写入现有的txt文件:
with open('文件名.txt','w+',encoding='utf-8') as a:
a.write()
#读取csv
import csv
f = open('文件夹路径&文件名', 'r',encoding = ‘utf-8’)
csvreader = csv.reader(f)
line = list( a for a in csvreader)
学习引导:
打开文件
关闭文件
文件读写
文件
打开文件
open() 方法
Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。
注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。
open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)
完整的语法格式如下:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
关闭文件
调用close()方法关闭文件
文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的:
f.close()
文件读写
文件读取的方式有三种:
1)read()
read:如果指定了参数 size,就按照该指定长度从文件中读取内容,否则,就读取全文。被读出来的内容,全部塞到一个字符串里面。这样有好处,就是东西都到内存里面了,随时取用;但如果文件内容太多了,内存会吃不消。注意换行符也为占用一个内存,缺点需要知道光标的位置,以及每一行的大小SIZE。
f = open(r'C:\Users\WJF\test.txt', 'r',encoding='gbk') #这里的文本文件,大家可以自己写一个,没有硬性要求。
# f.read(10)
f.read(5)
'DataS'
2)readline()
readline() 方法用于从文件读取整行,包括 "\n" 字符。从字面意思可以看出,该方法每次读出一行内容。所以,读取时占用内存小,比较适合大文件,该方法返回一个字符串对象。如果指定了一个非负数的参数,则返回指定大小的字节数,包括 "\n" 字符。
语法:fileObject.readline();
f = open(r'C:\Users\WJF\test.txt', 'r',encoding='gbk')
while True:
line=f.read()
if not line:#到 EOF,返回空字符串,则终止循环
break
print(line)
DataScience
专注数据科学领域
分享python、Java、大数据学习干货;职场面经、求职指南等
不定期组织免费学习计划
欢迎加入我们~~~
DataScience 官方博客:https://www.a2data.cn/#indexCard这一行是新加的内容。
3) readlines()
readlines() 方法用于读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for... in ... 结构进行处理。当文件太大时,内存可能不够用。如果碰到结束符 EOF 则返回空字符串。
如果碰到结束符 EOF 则返回空字符串。
语法:fileObject.readlines( );
f = open(r'C:\Users\WJF\test.txt', 'r',encoding='gbk')
print(f.readlines())
['DataScience\n', '\n', '专注数据科学领域\n', '分享python、Java、大数据学习干货;职场面经、求职指南等\n', '不定期组织免费学习计划\n', '欢迎加入我们~~~\n', '\n', 'DataScience 官方博客:https://www.a2data.cn/#indexCard这一行是新加的内容。\n']
#遍历每行打印
f = open(r'C:\Users\WJF\test.txt', 'r',encoding='gbk')
for line in f.readlines():
print(line)
'''
DataScience
专注数据科学领域
分享python、Java、大数据学习干货;职场面经、求职指南等
不定期组织免费学习计划
欢迎加入我们~~~
DataScience 官方博客:https://www.a2data.cn/#indexCard这一行是新加的内容。
'''
小总结
其实关于文件的打开有很多种模式,这里我们用一个表格总结一下
模式 | 概述 |
---|---|
t | 文本模式 (默认)。 |
x | 写模式,新建一个文件,如果该文件已存在则会报错。 |
b | 二进制模式。 |
+ | 打开一个文件进行更新(可读可写)。 |
U | 通用换行模式(不推荐)。 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
以上为文件打开的所有方式,但实际应用中常用的就其中几种,大家不必硬记,根据自己的需求记住几个常用的就好。
小作业:
语文老师将古诗存在poem.txt文档里,一句一行。他需要修改特定诗句为空白让学生默写。请使用如下诗歌为例,帮助老师实现功能:
锦瑟无端五十弦,一弦一柱思华年。庄生晓梦迷蝴蝶,望帝春心托杜鹃。沧海月明珠有泪,蓝田日暖玉生烟。此情可待成追忆,只是当时已惘然。
好文章,我 在看❤
本文分享自微信公众号 - DataScience(DataScienceTeam)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/4159456/blog/4645524