Python3 File 方法总结 (超详细!)

本文详细介绍了Python中文件操作的方法,包括文件的打开与关闭、读写操作、定位与截断等,为初学者和开发者提供了全面的指南。
部署运行你感兴趣的模型镜像

1. file.close() — 关闭一个已打开的文件

close()方法用于关闭一个已打开的文件。关闭后的文件不能再进行读写操作,否则会报错。该方法允许调用多次。使用close()方法关闭文件是一个好习惯。
语法:

fileObject.close()  #无参数,无返回值

实例:

#python
#打开文件
fo = open("hello.txt",encoding='utf-8')
print("文件名: ", fo.name)

#关闭文件
fo.close()

输出结果:

文件名为: hello.txt

2. file.flush() — 用来刷新缓冲区的

flush()方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。
一般情况下,文件关闭后会自动刷新缓冲区,但是有时你需要在关闭之前刷新它,这时就可以使用flush()方法。
语法:

fileObject.flush() #无参数,无返回值

实例:

#python
#打开文件
fo = open("hello.txt",encoding='utf-8')
print("文件名: ", fo.name)

#刷新缓冲区
fo.flush()

#关闭文件
fo.close()

输出结果:

文件名为: hello.txt

3. file.fileno() — 返回一个整型的文件描述符(file descriptor FD 整型)

fileno()方法返回一个整型的文件描述符(file descriptor FD 整型),可用于底层操作系统的I/O操作。

语法:

fileObject.fileno() #无参数,无返回值

实例:

#python
#文件打开
fo = open("hello.txt",encoding='utf-8')
print("文件名为: ", fo.name)

fd = fo.fileno()
print("文件描述符为: ", fd)

#文件关闭
fo.close()

输出结果:

文件名为: hello.txt
文件描述符为: 3

4. file.isatty() — 检测文件是否连接到一个终端设备,如果是返回 True,否则返回 False

isatty()方法检测文件是否连接到一个终端设备,如果是返回 True,否则返回 False。

语法:

fileObject.isatty() #无参数,返回值为True或则False

实例:

#python
#打开文件
fo = open("hello.txt",encoding='utf-8')
print("文件名为: ", fo.name)

isa = fo.isatty()
print("返回值为: ", isa)

#关闭文件
fo.close()

输出结果:

文件名: hello.txt
返回值为: False

5. file.next() — python3的内置函数next()通过迭代器调用__next__()方法返回下一项

python3 中的file对象不支持next()方法。python3的内置函数next()通过迭代器调用__next__()方法返回下一项。 在循环中,next()方法会在每次循环中调用,该方法返回文件的下一行,如果到达结尾(EOF),则触发Stoplteration

语法:

next(fileobject) 
#参数 命名的打开文件名
#返回值 返回文件下一行

实例:

# hello.txt
第一行內容
第二行內容
第三行內容
第四行內容
#python
#打开文件
fo = open("hello.txt",encoding='utf-8')
print("文件名为: ", fo.name)

for index in range(1,5):
           line = next(fo)
           print("第 %d 行 : %s"  % (index, line))
        
#关闭文件
fo.close()

输出结果:

文件名为:  hello.txt
第 1 行 : 第一行內容

第 2 行 : 第二行內容

第 3 行 : 第三行內容

第 4 行 : 第四行內容

6. file.read() — 用于从文件读取指定的字节数

read()方法用于从文件读取指定的字节数,如果未给出或为负数则读取所有。读取包括"\n"字符。

语法:

fileObjext.read(size)
#参数 size    从文件中读取的字节数
#返回值  返回从字符串中读取的字节

实例:

# hello.txt
第一行內容
第二行內容
第三行內容
第四行內容
#python
#打开文件
fo = open("hello.txt",encoding='utf-8')
print("文件名为: ", fo.name)

line = fo.read(10)
print("读取的字符串: %s" % (line))

#关闭文件
fo.close()

输出结果:

文件名为:  hello.txt
读取的字符串: 第一行內容
第二行內

7. file.readline() — 用于从文件读取整行

readline()方法用于从文件读取整行,包括"\n"字符。如果指定了一个非负数的参数,则返回指定大小的字节数,包括"\n"字符。如果未给定,则输出整行。

语法:

fileObject.readline(size)
#参数 size    从文件中读取的字节数
#返回值  返回从字符串中读取的字节

实例:

# hello.txt
第一行內容
第二行內容
第三行內容
第四行內容
#python
#打开文件
fo = open("hello.txt",encoding='utf-8')
print("文件名为: ", fo.name)

line = fo.readline()
print("读取第一行:  %s" % (line))

line = fo.readline(3)
print("读取字符串为: %s" % (line))

#关闭文件
fo.close()

输出结果:

文件名: hello.txt
读取第一行: 第一行内容

读取的字符串: 第一行

8. file.readlines() — 用于读取所有行(直到结束符EOF)并返回列表

readlines()方法==用于读取所有行(直到结束符EOF)并返回列表,==若给定size>0,返回总和大约为size字节的行,实际读取值可能比size较大,因为需要填充缓冲区。
如果碰到结束符EOF则返回空字符串。

语法:

fileObject.readlines(size)
#参数  size   从文件中读取的字节数
#返回值  返回列表,包含所有行

实例:

# hello.txt
第一行內容
第二行內容
第三行內容
第四行內容
#python
#打开文件
fo = open("hello.txt",encoding='utf-8')
print("文件名为: ", fo.name)

line = fo.readlines()
print("读取的数据为:  %s" % (line))

line = fo.readline(2)
print("读取的数据为: %s" % (line))

#关闭文件
fo.close()

输出结果:

文件名为:  hello.txt
读取的数据为:  ['第一行內容\n', '第二行內容\n', '第三行內容\n', '第四行內容']
读取的数据为: []

9. file.seek() — 用于移动文件读取指针 到 指定位置

seek()方法用于移动文件读取指针 到 指定位置

语法:

fileObject.seek(offset, whence)
#参数 
* offset 开始的偏移量,也就是代表需要移动偏移的字节数
* whence 可选,默认值为0。给whence参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾开始算起。
#返回值 无返回值

实例:

# hello.txt
第一行內容
第二行內容
第三行內容
第四行內容
#python
#打开文件
fo = open("hello.txt",encoding='utf-8')
print("文件名为: ", fo.name)

line = fo.readline()
print("读取的数据为: %s" % (line))

#重新设置文件读取指针到开头
fo.seek(0, 0)
line = fo.readline()
print("读取的数据为: %s" % (line))

#从当前位置指针开始
fo.seek(0, 1)
line = fo.readline()
print("读取的数据为: %s" % (line))

#从文件末尾开始
fo.seek(0, 2)
line = fo.readline()
print("读取的数据为: %s" % (line))
#关闭文件
fo.close()

输出结果:

文件名为:  hello.txt
读取的数据为: 第一行內容

读取的数据为: 第一行內容

读取的数据为: 第二行內容

读取的数据为: 

10. file.tell() — 返回文件的当前位置

tell()方法返回文件的当前位置,即文件指针当前位置。

语法:

fileObject.tell()
#无参数
#返回值 返回文件指针当前位置

实例:

#hello.txt
第一行內容
第二行內容
第三行內容
第四行內容
#python
#打开文件
fo = open("hello.txt",encoding='utf-8')
print("文件名为: ", fo.name)

line = fo.readline()
print("读取的数据为:  %s" % (line))

#获取当前文件指针位置
path = fo.tell()
print("当前指针位置: %d" % (path))

#关闭文件
fo.close()

输出结果:

文件名为:  hello.txt
读取的数据为:  第一行內容

当前指针位置: 17

11. file.truncate() — 用于截断文件

truncate()方法用于截断文件,如果指定了可选参数size,则表示截断文件为size个字符。如果没有指定size,则重置到当前位置。(换行符’\n‘也会被计算)

语法:

fileObject.truncate(size)
#参数 size 可选,如果存在则文件截断为size个字节。
#返回值 无返回值

实例:

#hello.txt
hello
world
everyone
#python
#打开文件
fo = open("hello.txt", 'r+', encoding='utf-8')
print("文件名为: ", fo.name)

fo.truncate(10)
#读取现在文件所有的内容
line = fo.read()
print(line)

#关闭文件
fo.close()

输出结果:

文件名为:  hello.txt
hello
wor

现在hello.txt文件内容:

#hello.txt
hello
wor

12. file.write() — 用于向文件中写入指定字符串

write()方法用于向文件中写入指定字符串。在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中看不到写入的内容的。

语法:

fileObject.write(str)
#参数 str ---要写入文件的字符串
#返回值 无返回值

实例:

#hello.txt
第一行內容
第二行內容
第三行內容
第四行內容
#python
#打开文件
fo = open("hello.txt","r+", encoding='utf-8')
print("文件名为: ", fo.name)

str = '\n第五行内容'
#在文件末尾写入一行
fo.seek(0, 2)
line = fo.write(str)

#回到文件开头,读取文件所有内容
fo.seek(0, 0)
for index in range(1,6):
    line = next(fo)
    print('第 %d 行 -- %s' % (index, line))

#关闭文件
fo.close()

输出结果:

文件名为:  hello.txt
第 1-- 第一行內容

第 2-- 第二行內容

第 3-- 第三行內容

第 4-- 第四行內容

第 5-- 第五行内容

现在hello.txt,文件内容:

第一行內容
第二行內容
第三行內容
第四行內容
第五行内容

13. file.writelines() — 用于向文件中写入一序列的字符串

writelines() 方法用于向文件中写入一序列的字符串。这一序列字符串可以是由迭代对象产生的,如一个字符串列表。换行需要制定换行符\n.

语法:

fileObject.writelines([str])
#参数 str --要写入文件的字符串序列
#返回值 无返回值

实例:

#hello.txt
第一行內容
第二行內容
第三行內容
第四行內容
#python
#打开文件
fo = open("hello.txt","r+", encoding='utf-8')
print("文件名为: ", fo.name)

seq = ['\n添加第五行内容', '\n添加第六行内容']
#在文件末尾写入
fo.seek(0, 2)
line = fo.writelines(seq)

#回到文件开头,读取文件所有内容
fo.seek(0, 0)
line = fo.read()
print(line)

#关闭文件
fo.close()

输入结果:

文件名为:  hello.txt
第一行內容
第二行內容
第三行內容
第四行內容
第五行内容
添加第五行内容
添加第六行内容

本篇完


上一篇文章———>这回终于知道了if name=='main’干嘛的了
下一篇文章———>Python之将py文件(一个或多个)打包成exe可执行文件----pyinstaller


下一篇文章———>Java 二进制的前导的零 Mooc

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全 洛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值