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. Linux修改用户所在组方法

    Linux修改用户所在组方法 usermod -g 用户组 用户名强行设置某个用户所在组usermod -G 用户组 用户名把某个用户改为 group(s) usermod -a -G 用户组 用户名 ...

  2. PHP:自己写的mysql操作类

    a{ font-weight: bold; display: block; text-align: center; color: #5887bf; font-size: 22px; } .conten ...

  3. python module -- sys

    sys模块主要是用于提供对python解释器相关的操作 http://www.cnblogs.com/pycode/p/sysos.html http://blog.csdn.net/pipisorr ...

  4. Unity4.3.4 安装出现 pattern not found

    第一次破解不成功,第二次破解的时候就会出现这个错误 删除C:\ProgramData\Unity里面文件后,再重启后点击Manual Activation,出现的对话框是是保存当前序列号?重新加载序列 ...

  5. JS 中offset 的小bug 与解决方案。

    一.发现bug准备工作,先定义一个div,然后给div加上样式    效果图如图所示: 二.编写正常的代码,同时给div加上一个id     会发现div图会向左缩进...直至消失. 三.添加代码bo ...

  6. time_wait的快速回收和重用

    TCP四次挥手: Time_wait产生原因及作用: 1. time_wait状态如何产生? 由上面的变迁图,首先调用close()发起主动关闭的一方,在发送最后一个ACK之后会进入time_wait ...

  7. 2017-11-11 Sa Oct Spider

    2017-11-11 Sa Oct Spider 4:33 PM Again. Firstly test liburl: # -*- coding: utf-8 -*- import json imp ...

  8. 随想:目标识别中,自适应样本均衡设计,自适应模型结构(参数可变自适应,模型结构自适应,数据类别or分布自适应)

    在现在的机器学习中,很多人都在研究自适应的参数,不需要人工调参,但是仅仅是自动调参就不能根本上解决 ai识别准确度达不到实际生产的要求和落地困难的问题吗?结论可想而知.如果不改变参数,那就得从算法的结 ...

  9. tensorflow,object,detection,在model zoom,新下载的模型,WARNING:root:Variable [resnet_v1_50/block1/unit_3/bottleneck_v1/conv3/BatchNorm/gamma] is not available in checkpoint

    现象: WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/BatchNorm/beta] is not ava ...

  10. 阿里巴巴 Weex

    原文链接:https://blog.csdn.net/zz901214/article/details/79168707/ 分享嘉宾:侑夕 阿里巴巴高级前端工程师(上张帅哥的图镇楼,看完,更有动力学习 ...