这篇是Python基础语法的一个结尾了,还是可莉跟着大家一起学习哦~
在计算机系统中,文件是存储在磁盘或其他存储设备上的数据集合。文件可以是文本、图像、音频、视频等各种格式的数据。在Python中,文件被视为一种流式数据源,即数据可以从文件中按顺序读取,也可以写入到文件中。
open()用来打开文件,例如:
file = open('example.txt', 'r') # 以只读模式打开文件
用close的方法关闭已打开的文件:
f.close()
因为一个程序能开的文件有限,所以必须对文件在进行使用后进行关闭。
读文件时需要以 “r” 的方式来打开文件
用read读文件时( )内的数字表示读几个字符
f = open('d:/test.txt', 'r')
result = f.read(2)
print(result)
f.close()
用于读取文件的下一行。你可以多次调用这个方法,直到抛出异常为止,这通常意味着已经到达了
文件的末尾。每次调用readline()
都会返回文件的下一行,或者在没有更多行时返回None
。如果你
想逐行读取整个文件,可以使用一个循环,如下所示:
with open('file.txt', 'r') as file:
while True:
line = file.readline()
if not line: # 如果读取到了文件的末尾,line将为None
break
print(line, end='') # 打印读取到的行,注意要清除末尾的换行符
将文件的所有剩余行作为一个列表返回。列表中的每一项代表文件的一行。这个方法适合一次性读
取文件的所有内容,然后逐个处理每一行。示例如下:
with open('file.txt', 'r') as file:
lines = file.readlines() # 读取文件的所有行到一个列表中
for line in lines:
print(line, end='') # 打印列表中的每一行
在直接循环打印时会因为print自身默认会添加换行符而且文件自身每行结束会自带换行符而使每一行之间都有两行的间距,所以我们对print的默认值参数进行修改,用end = ' '来使最后一个字符是空格,这样就避免了每两行之间的行距是两行了。
我们可以用 ‘w’ 和 ‘a’ 的方式来通过不同的需求进行写入文件。当使用 ‘r’ 只读的话无法对文件进行写入,会抛出异常,对已经关闭的文件也是如此。
f = open('d:/test.txt', 'w')
f.write('hello')
f.close()
f = open('d:/test.txt', 'a')
f.write('world')
f.close()
当我们的文档中含有中文的话可能在读取的时候不是很顺利,会出现乱码等现象。这是因为计算机在读取中文时会采用一定的编码方式,ASCII码表就是最典型的例子。当计算机按二进制读取数字后会用很大的数字来表示中文,但是不同的“编码集”中对应的字符可能不同,所以我们如果想要顺利的去读取中文的话我们必须要保证文件本身的编码方式, 和 Python 代码中读取文件使用的编码方式匹配, 才能避免出现上述问题。
此时修改打开文件的代码, 给 open 方法加上 encoding 参数, 显式的指定为和文本相同的字符集, 即可解决对含中文文件的处理问题。
f = open('d:/test.txt', 'r', encoding='utf8')
打开文件之后, 很容易忘记关闭它。Python 提供了 上下文管理器 , 来帮助我们来自动关闭文件。
用with语句来打开文件,当with语句块内的代码执行完毕后会自动调用关闭文件,语法结构如下:
with open(...) as file:
我们来用一个例子来更清晰的了解下用法:
with open('d:/test.txt', 'r', encoding='utf8') as f:
lines = f.readlines()
print(lines)
目前呢我们就已经把Python中的基础语法给学的差不多啦,我们从变量到循环到文件,一步步的渗透学习一定使大家受益匪浅吧~(不是的话就怪可莉)
我们现在有了基础的语法,可以干什么呢?接下来的博客可莉将带大家进行更有趣的学习,和大家一起去用Python去做一些有意思的东西吧~