之前的十篇内容已经完成了 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() 函数,区别只是穿参时的操作模式不同。

评论




正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0