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. javascript条件语句

    //条件语句 if (false) { console.log("is true") } else { console.log("is false") } // ...

  2. shiro初识

    shiro 可以做认证.授权.加密.会话管理.与web集成.缓存. 在本文中,主要使用认证和授权这两个功能. 在shiro框架中,有些很重要的概念: Subject    很多人把它理解为当前用户,这 ...

  3. 关于前段JS代码报错问题的解决方法

    最近接手别人的一个项目,项目导入到Myeclipse中,JS代码一直报错,说missing semicolon.该错误是Myeclipse在检查JS代码的过程出现的. 后来经过检查,发现JS代码本身没 ...

  4. 遍历删除查临时表相关session再操作表

    示例如下 删除 inf_getuserinfoforywh_temp1 (前提,相关用到inf_getuserinfoforywh_temp1的应用必须先停了) create or replace p ...

  5. JMETER之socket接口性能测试

    公司的**产品经过换代升级,终于要上线了,纯java编码,包括POS(PC/安卓平板)版.WEB版.微信版,各终端通过 Webservice服务共享数据资源,因此Webservice各接口的性能测试就 ...

  6. @PostConstruct注解小结

    1.在具体Bean的实例化过程中,@PostConstruct注解的方法,会在构造方法之后,init方法之前进行调用2.在项目中@PostConstruct主要应用场景是在初始化Servlet时加载一 ...

  7. Silverlight中验证码生成

    public class ValidationCode { Random r = new Random(DateTime.Now.Millisecond); /// <summary> / ...

  8. windows集群简单介绍

    windows集群简单介绍仔细看过以前网友发表的一些文章,总觉得对windows集群没有详细介绍,我也是借花献佛,引用了一些技术性文档.目前应用最为广泛的集群计算技术可以分为三大类:高可用性集群技术. ...

  9. python入门(十五):装饰器

    1.装饰器(decorator):设计模式 作用:给不同的函数和方法,增加不同的公用的功能. @classmethod,@staticmethod等均是装饰器 定义一个装饰函数,函数必须返回一个闭包函 ...

  10. 20175314 《Java程序设计》第七周学习总结

    20175314 <Java程序设计>第七周学习总结 教材学习内容总结 第八章:常用实用类 String()类代表字符串:Java 程序中的所有字符串字面值(如 "abc&quo ...