Python3 文件

Python3 文件

目录

Python 文件

从文件中读取数据

读取整个文件

逐行读取

创建一个包含文件各行内容的列表

注意

写入文件

写入到空文件中

写入多行

追加内容到文件


从文件中读取数据

读取整个文件

创建一个文本文件:pi.txt,其包含的内容如下

创建一个Python文件read_file.py,用于读取pi.txt中的内容,并显示出来:

#!/usr/bin/env python3
# -*- coding:utf-8 -*-

with open("pi.txt") as file_object:
    pi = file_object.read()
    print(pi)

要读取一个文件,首先得打开这个文件。

open()函数

用于打开一个文件。接受一个参数:需要打开的文件的名称或文件的路径。如果给的是文件的名称,Python就会在当前执行的.py文件所在的目录中查找指定的文件;如果指定的文件与当前执行的.py文件不在同一目录,就需要给出文件的路径(相对路径或者绝对路径)。

函数open()返回一个表示文件及其内容的文件对象,并通过as关键字将其引用存储在一个变量中(如本例中的file_object变量)。

关键字with

使用with关键字可以让Python自行确定在合适的时间打开或关闭文件。

read()方法

通过文件对象的read()方法读取文件的全部内容。

运行结果:

F:\project\venv\Scripts\python.exe F:/project/print_pi.py
3.1415926535
8979323846

Process finished with exit code 0

逐行读取

文件对象是一个可迭代对象,所以,可以使用for循环来遍历文件对象中每一行的内容:

# 逐行读取
with open("pi.txt") as file_object:
    for v in file_object:
        print(v)
3.1415926535

8979323846

创建一个包含文件各行内容的列表

使用with关键字时,open()函数返回的文件对象只能在with代码块内部使用。如果要在with代码块外部访问这个文件的内容,可以在with代码块内部将文件的各行内容存储到一个列表中,这样便可在with代码块外部通过这个列表访问文件内容。

# 创建一个包含文件各行内容的列表
with open("pi.txt") as file_object:
    list = file_object.readlines()
for l in list:
    print(l)

readlines()方法

读取文件的所有行,返回一个列表。


注意

Python读取文件中的内容时,会把所有的内容都解读为字符串。如果读取的是数字,就需要用int()或float()进行数据转换。


写入文件

写入到空文件中

创建一个空文件hello.txt,在同一目录下创建一个write_file.py文件用于向hello.txt中写入数据:

#!/usr/bin/env python3
# -*- coding:utf-8 -*-

with open("hello.txt", 'w') as file_object:
    file_object.write("hello world!")

此处调用open()函数时还提供了另一个参数,这个参数('w')表示以“写入模式”打开文件。常用的文件打开模式(mode)包括:

模式描述
r只读模式打开文件。文件的指针将会放在文件的开头。这是默认模式。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
w写入模式。打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件
w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
a追加模式。打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

注意

Python只能将字符串写入到文件中,要写入数值数据或者列表等,需要先用str()函数进行数据转换。


写入多行

文件对象的write()方法并不会在写入的文本末尾添加换行符,所以需要在写入的文本内容中包含换行符'\n':

# 写入多行
with open("hello.txt", 'w') as file_object:
    file_object.write("Good morning\nhello world!\n")  # 'w'写入模式会覆盖文件的原有内容


追加内容到文件

要追加内容到文件,就要以“追加模式”打开文件:

# 追加内容到文件
with open("hello.txt", 'a') as file_object:
    file_object.write("I Love The World!")  # 'a'追加模式会在文件末尾追加内容,不会覆盖原有内容

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值