之前的十篇内容已经完成了 Python 的基础部分,接下来是对文件数据的处理以及分析,也是工作中会经常用到的技能。
读取文件数据
当需要对文件数据进行处理分析时,首先是要能读取到文件中的内容,读取内容有两种方式:一次性读取和逐行读取。
一次性读取
# 读取文件格式
with open('文件路径+文件名') as 变量1:
变量2 = 变量1.read()
print(变量2)
函数
open('文件路径+文件名')
是打开文件的操作,任何对文件的操作,第一步都要打开文件,所以这也是必须的,也同等于要操作文件时,我们的双击打开文件的操作。
with...as
: 关键字with
可以适时的关闭文件,该关键字是用来处理无法正常关闭文件的异常;as
后接一个变量名,意思是将打开后的文件内容赋值给该变量。函数
read()
是读取文件内容的操作。将字符串读取后存储到变量2中,通过
print()
输出文件内容。
创建一个需要读取的文件。文件内容如下:
# 文件名 learn_python.txt
In Python you can open file.
In Python you can data processing.
In Python you can reptile.
示例
with open('/Users/feiyi/Desktop/blog/learn_python.txt') as files:
file = files.read()
print(file)
逐行读取
逐行读取采用了for循环的方式。
file_name = '/Users/feiyi/Desktop/blog/learn_python.txt'
with open(file_name) as files:
for file in files:
print(file)
# 输出内容
In Python you can open file.
In Python you can data processing.
In Python you can reptile.
可以看到输出内容中每行后都有一个空行,这是 print()
函数在末尾增加的换行符,使用 rstrip()
函数可消除每行后的空行。
file_name = '/Users/feiyi/Desktop/blog/learn_python.txt'
with open(file_name) as files:
for file in files:
print(file.rstrip())
将文件内容存放到列表
每一行就是变量列表中的一只值,可在 with 外使用该变量
file_name = '/Users/feiyi/Desktop/blog/learn_python.txt'
with open(file_name) as files:
file = files.readlines()
print(file)
for i in file:
print(i.rstrip())
# 输出内容
['In Python you can open file.\n', 'In Python you can data processing.\n', 'In Python you can reptile.']
In Python you can open file.
In Python you can data processing.
In Python you can reptile.
操作文件内容
将文件中的 Python 替换为 Golang
file_name = '/Users/feiyi/Desktop/blog/learn_python.txt'
with open(file_name) as files:
file = files.readlines()
for i in file:
result = i.rstrip()
print(result.replace('Python', 'Golang'))
# 输出内容
In Golang you can open file.
In Golang you can data processing.
In Golang you can reptile.
写入文件
写入文件的操作分为两种,一种是文件不存在的情况下创建并写入内容到文件,一种是在已有文件中进行内容的追加。
写入空文件
file_name = 'write.txt'
with open(file_name, 'w') as files:
files.write("I'm learning Python.")
open()
函数中操作的文件不存在则会进行创建,传入的实参w
,是在告诉 Python,要以写入模式打开这个文件,之前没有做传参是因为默认是r(只读模式)
,此外还有a(附加模式)
。以写入模式打开文件时要注意,如果文件已存在,将会清空文件内容。
write()
函数将一个字符串写入文件。
写入多行
file_name = 'write.txt'
with open(file_name, 'w') as files:
files.write("I'm learning Python.\n")
files.write("I'm learning use Python open file.\n")
附加到文件
继续操作上面创建的 write.txt,前面也介绍了,a
是附加模式。
file_name = 'write.txt'
with open(file_name, 'w') as files:
files.write("I'm learning Python.\n")
files.write("I'm learning use Python open file.\n")
with open(file_name, 'a') as files:
files.write("I also want to learn Golang\n")
写入和附加都是用了 write()
函数,区别只是穿参时的操作模式不同。