Python3 File 方法总结目录

  • 1. file.close()
  • 2. file.flush()
  • 3. file.fileno()
  • 4. file.isatty()
  • 5. file.next()
  • 6. file.read()
  • 7. file.readline()
  • 8. file.readlines()
  • 9. file.seek()
  • 10. file.tell()
  • 11. file.truncate()
  • 12. file.write()
  • 13. file.writelines()


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()

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()

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 中的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()

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
第一行內容
第二行內容
第三行內容
第四行內容
第五行内容
添加第五行内容
添加第六行内容

本篇完