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. Hive实现交叉二维分析的小语句

    1. 梳理出你要的列和行维度 列维度: 每一周 行维度: 年级 + 学科 + 班型 2. 对数据按周增序进行聚合 (即根据列维度) ,生成list concat_ws 和 collect_list ( ...

  2. oracle 的tnsnames.ora,listener.ora

    x:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN listener.ora: # listener.ora Network Conf ...

  3. go语言问题集锦

    ==============================================beego框架=========================================== 1.使 ...

  4. ArcGIS API for JS 测量线长(各折线段)

    这里测量长度主要分为两个方面,一个是在绘制长折线段时,不仅需要显示总线段的长度,还要在各线段的中间显示各折线段的长度:另一个则是在绘制多边形时,不仅需要显示多边形的面积,还需要在各边的中间显示线段长. ...

  5. Winform 中写代码布局中遇到的控件遮盖问题

    在winform中编程时,需要动态向主窗体中增加菜单栏和用户控件,菜单栏需要设置DockStyle为Top ,而设置用户控件的DockStyle为Fill,之后在加载的时候,出现了菜单栏遮盖用户控件的 ...

  6. sql两表连接

    一直以来认为exists比in效率高的说法是不准确的.如果查询的两个表大小相当,那么用in和exists差别不大.如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:例 ...

  7. C语言典型编程1

    关于C的一些小而精的编程,适合希望提升编程能力的初学者学习:关键编程也就几句,但思维可以迁移到其他编程语言.同一问题,算法多种 //阶乘运算(有多种编写方式,编程需要看懂,更要打出来)#include ...

  8. 产品大神1--工具axure

    一,axure安装 链接:https://pan.baidu.com/s/1rb3SH5HSogP1k_ARTZTflA 提取码:084p 二,axure8.0的使用 因为下面的文章都已经写的非常详细 ...

  9. 对于在git上面拉代码报"error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054"解决方法

    主要原因是安全设置的问题: 首先执行git config http.sslVerify "false"   若出现下列错误 git config http.sslVerify &q ...

  10. Mybatis常用代码

    以下使用的数据库是Mysql. Mybatis动态Sql: Mapper.xml如下: <select id="selectOrderList" resultMap=&quo ...