file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数:

序号 方法及描述 实例
 1

file.close()

关闭文件。关闭后文件不能再进行读写操作。

方法用于关闭一个已打开的文件。关闭后的文件不能再进行读写操作, 否则会触发 ValueError 错误。 close() 方法允许调用多次。

当 file 对象,被引用到操作另外一个文件时,Python 会自动关闭之前的 file 对象。 使用 close() 方法关闭文件是一个好的习惯。

返回值:无

参数:无

#!/usr/bin/python3

# 打开文件
fo = open("python.txt", "wb")
print("文件名为: ", fo.name) # 关闭文件
fo.close()
 2

file.flush()

刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。

===========================

flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。

一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。

返回值:无

参数:无

#!/usr/bin/python3

# 打开文件
fo = open("python.txt", "wb")
print ("文件名为: ", fo.name) # 刷新缓冲区
fo.flush() # 关闭文件
fo.close()
 3

file.fileno()

返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。

返回值:返回文件描述符。

参数:无

#!/usr/bin/python3

# 打开文件
fo = open("python.txt", "wb")
print ("文件名为: ", fo.name) fid = fo.fileno()
print ("文件描述符为: ", fid) # 关闭文件
fo.close()
 4

file.isatty()

如果文件连接到一个终端设备返回 True,否则返回 False。

返回值:如果连接到一个终端设备返回 True,否则返回 False。

参数:无

#!/usr/bin/python3

# 打开文件
fo = open("python.txt", "wb")
print ("文件名为: ", fo.name) ret = fo.isatty()
print ("返回值 : ", ret) # 关闭文件
fo.close()
 5

file.next()

返回文件下一行。

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

返回值:返回文件下一行。

参数:无

#!/usr/bin/python3

# 打开文件
fo = open("python.txt", "r")
print ("文件名为: ", fo.name) for index in range(5):
line = next(fo)
print ("第 %d 行 - %s" % (index, line)) # 关闭文件
fo.close()
 6

file.read([size])

从文件读取指定的字节数,如果未给定或为负则读取所有。

返回值:返回从字符串中读取的字节。

参数:size -- 从文件中读取的字节数。

#!/usr/bin/python3

# 打开文件
fo = open("python.txt", "r+")
print ("文件名为: ", fo.name) line = fo.read(10)
print ("读取的字符串: %s" % (line)) # 关闭文件
fo.close()
 7

file.readline([size])

读取整行,包括 "\n" 字符。

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

返回值:返回从字符串中读取的字节。

参数:size -- 从文件中读取的字节数。

#!/usr/bin/python
# -*- coding: UTF-8 -*- # 打开文件
fo = open("python.txt", "r+")
print ("文件名为: ", fo.name) line = fo.readline()
print ("读取第一行 %s" % (line)) line = fo.readline(5)
print ("读取的字符串为: %s" % (line)) # 关闭文件
fo.close()
 8

file.readlines([sizeint])

读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区。

该列表可以由 Python 的 for... in ... 结构进行处理。 如果碰到结束符 EOF 则返回空字符串。

如果碰到结束符 EOF 则返回空字符串。

返回值:列表,包含所有的行。

参数:sizeint -- 从文件中读取的字节数。

#!/usr/bin/python3

# 打开文件
fo = open("python.txt", "r")
print ("文件名为: ", fo.name) for line in fo.readlines(): #依次读取每行
line = line.strip() #去掉每行头尾空白
print ("读取的数据为: %s" % (line)) # 关闭文件
fo.close()
 9

file.seek(offset[, whence])

设置文件当前位置,用于移动文件读取指针到指定位置。

返回值:无

参数:

offset -- 开始的偏移量,也就是代表需要移动偏移的字节数

whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。

#!/usr/bin/python3

# 打开文件
fo = open("python.txt", "r+")
print ("文件名为: ", fo.name) line = fo.readline()
print ("读取的数据为: %s" % (line)) # 重新设置文件读取指针到开头
fo.seek(0, 0)
line = fo.readline()
print ("读取的数据为: %s" % (line)) # 关闭文件
fo.close()
 10

file.tell()

返回文件当前位置。即文件指针当前位置。

返回值:文件的当前位置。

参数:无

#!/usr/bin/python3

# 打开文件
fo = open("python.txt", "r+")
print ("文件名为: ", fo.name) line = fo.readline()
print ("读取的数据为: %s" % (line)) # 获取当前文件位置
pos = fo.tell()
print ("当前位置: %d" % (pos)) # 关闭文件
fo.close()
 11

file.truncate([size])

从文件的首行首字符开始截断,截断文件为 size 个字符,无 size 表示从当前位置截断;截断之后 V 后面的所有字符被删除,其中 Widnows 系统下的换行代表2个字符大小。

返回值:无

参数:size -- 可选,如果存在则文件截断为 size 字节。

#!/usr/bin/python3

fo = open("python.txt", "r+")
print ("文件名: ", fo.name) line = fo.readline()
print ("读取行: %s" % (line)) fo.truncate()
line = fo.readlines()
print ("读取行: %s" % (line)) # 关闭文件
fo.close()
12

file.write(str)

将字符串写入文件,没有返回值。

在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的。

返回值:无

参数:str -- 要写入文件的字符串。

#!/usr/bin/python3

# 打开文件
fo = open("python.txt", "r+")
print ("文件名: ", fo.name) str = "text end"
# 在文件末尾写入一行
fo.seek(0, 2)
line = fo.write( str ) # 读取文件所有内容
fo.seek(0,0)
for index in range(6):
line = next(fo)
print ("文件行号 %d - %s" % (index, line)) # 关闭文件
fo.close()
13

file.writelines(sequence)

向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

返回值:无

参数:str -- 要写入文件的字符串序列。

#!/usr/bin/python3

# 打开文件
fo = open("python.txt", "w")
print ("文件名为: ", fo.name)
seq = ["text 1\n", "text 2"]
fo.writelines( seq ) # 关闭文件
fo.close()

python3 第三十四章 - 聊聊File对象的更多相关文章

  1. Gradle 1.12用户指南翻译——第三十四章. JaCoCo 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  2. “全栈2019”Java多线程第三十四章:超时自动唤醒被等待的线程

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  3. “全栈2019”Java第三十四章:可变参数列表

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  4. 我的学习之路_第三十四章_jsp

    jsp 在只有servlet时,输出页面内容比较麻烦(成本高,java代码中输出HTML标签),所以需要一种技术,主要是HTML页面的代码(HTML,css,js),可以嵌入java代码,来实现动态页 ...

  5. 第三十四章 Linux常规练习题(一)参考答案

    一.练习题一 1.超级用户(管理员用户)提示符是___#_,普通用户提示符是___$_. 2.linux关机重启的命令有哪些 ? 关机命令 重启命令 shutdown -h now shutdown ...

  6. 第三十四章 metrics(2)- 搭建metrics平台

    一.基本架构图 1.整个架构组件: java客户端 dropwizard-metrics:springboot.hystrix的metric体层使用了这个,所以我们需要自己封装向statsd发包的方法 ...

  7. 【WPF学习】第三十四章 资源基础

    WPF允许在代码中以及在标记中的各个位置定义资源(和特定的控件.窗口一起定义,或在整个应用程序中定义). 资源具有许多重要的优点,如下所述: 高效.可以通过资源定义对象,并在标记中的多个地方使用.这会 ...

  8. python3 第三十二章 - 标准库概览

    1. 操作系统接口 os 模块提供很多函数与操作系统进行交互︰ >>> import os >>> os.getcwd() # 返回当前的工作目录 'C:\\Pyt ...

  9. SpringBoot | 第三十四章:CXF构建WebService服务

    前言 上一章节,讲解了如何使用Spring-WS构建WebService服务.其实,创建WebService的方式有很多的,今天来看看如何使用apache cxf来构建及调用WebService服务. ...

随机推荐

  1. loadrunner-参数化

    参数化的目的: 1.数据库或应用程序对提交请求里的参数值进行唯一性校验 2.为了避免查询缓存导致的性能测试结果失真 (语法检查-语意检查-检查缓存(有直接从数据库给)没有就生成执行计划-按照执行计划去 ...

  2. PCIe传输速率和可用带宽(吞吐量)计算

      版权声明:本文为博主原创文章,若要转载请保留原文链接. https://blog.csdn.net/s_sunnyy/article/details/79027379 参考:https://bai ...

  3. ECharts教程

    ECharts 特性 兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等) 底层依赖轻量级的矢量图形库 ZRender 丰富的可视化类型 常规的折线图.柱状图 ...

  4. Java数据类型(Primivite 和引用数据类型!)

    一.byte(8位)  short(16位)  int(32位) long(64位) float(32位) double(64位) boolean(Java虚拟机决定)  true 或者false! ...

  5. 每日一练之大整数加法(P1255 数楼梯)

    走楼梯走一步还是两步的问题其实就是斐波那契数列(F(n)=F(n-1)+F(n-2),而在int型范围内存在45个相异的数,题干说明楼梯总数可以为5000,则考虑使用字符串进行存储.当两个数相加产生进 ...

  6. Loadrunner Vugen参数列表中数据分配方法及更新值的时间9种组合说明及验证

    作为刚开始学习Loadrunner的新人,Data Assignment Method以及Update Method在相互组合之后,LR如何进行取值让我很是头疼. 于是花了一个晚上的时间认真学习官方文 ...

  7. infinite-loading 插件

    <template> <div id="cart" class="has-top"> <!-- <v-header titl ...

  8. python中文件处理--判断文件读取结束方法

    一.readline函数 按行遍历读取文件的方法,通过这个方法,readline() 每次只读取一行,通常比 .readlines() 慢得多.仅当没有足够内存可以一次读取整个文件时,才应该使用 .r ...

  9. Game Engine Architecture 4

    [Game Engine Architecture 4] 1.a model of multiple semi-independent flows of control simply matches ...

  10. margin居中显示

    标签(空格分隔): margin居中 margin居中: 如下图的代码查看: <!DOCTYPE html> <html lang="en"> <he ...