一、文件操作

1.tell()方法返回文件的当前位置,即文件指针当前位置。

  • UTF-8 编码格式,一个中文占3个字符
  • GBK 编码格式,一个中文占2个字符
#写入前文件内容如下
"""
秦时明月汉时关
万里长征人未还
但使龙城飞将在
不教胡马度阴山
""" f = open("music","r",encoding="utf8")
print(f.tell())
print(f.read(5))
print(f.tell())
f.close() #打印出结果如下
"""
0 #初始指针在文件头,也就是位置为0的位置上
秦时明月汉 #打印出5个汉字
15 #此时指针位置在15
"""

2.seek()指针从哪里开始写入

file.seek(offset[, whence])
  • offset -- 开始的偏移量,也就是代表需要移动偏移的字节数

  • whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
#seek() 参数 whence 默认为 0
f = open("music","r",encoding="utf8")
print(f.read(5))
f.seek(3)
print(f.read(2))
f.close() #结果如下
"""
秦时明月汉
时明
"""
#seek() 参数 whence 为 1
#文件内容如下
"""
秦时明月汉时关
""" f = open("music","rb") #读取模式需为 "rb"
print(f.read(3).decode("utf8")) #读取出的内容解码为 utf8
f.seek(3,1)
print(f.read(3).decode("utf8"))
f.close() #结果如下
"""


"""
#seek() 参数 whence 为 2
#文件内容如下
"""
秦时明月汉时关
""" f = open("music","rb") #读取模式需为 "rb"
print(f.read(3).decode("utf8")) #打印出的结果为汉字需要解码为 utf8
f.seek(-9,2) #指针改成倒数第三个汉字前进行读取
print(f.read(6).decode("utf8")) #从指针位置向后读取两个汉字
f.close() #结果如下
"""

汉时
"""

3.flush()

  • 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。
  • 一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。
import time
f = open("music","w",encoding="utf8")
f.write("hello world") #此时写入的内容在(缓冲区)缓存中,并未写入到磁盘中,需要执行后面的 f.close() 才会将内容从缓存中写入到磁盘中
f.flush() #此操作就是提前将缓冲区内的内容写入到磁盘中 time.sleep(10)
f.close()
#方案一
import sys,time
for i in range(30): #进度条类型
sys.stdout.write("*") #此时写入在缓冲区
sys.stdout.flush() #通过 flush() 实时刷新
time.sleep(0.2) #方案二
import time
for i in range(30): #进度条类型
print("*",end="",flush=True)
time.sleep(0.2)

4.truncate()

  • 方法用于截断文件并返回截断的字节长度。
  • 指定长度的话,就从文件的开头开始截断指定长度,其余内容删除;不指定长度的话,就从文件开头开始截断到当前位置,其余内容删除。
#文件内容如下
"""
秦时明月汉时关
万里长征人未还
但使龙城飞将在
不教胡马度阴山
""" #truncate()参数为空时
f = open("music","r+",encoding="utf8")
f.truncate()
print(f.read())
f.close() #输出结果如下
""" """ #truncate()有参数时
f = open("music","r+",encoding="utf8")
f.truncate(15)
print(f.read())
f.close() #输出结果如下
"""
秦时明月汉
"""

python(文件操作)的更多相关文章

  1. Python基础篇【第2篇】: Python文件操作

    Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说 ...

  2. [Python学习笔记][第七章Python文件操作]

    2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...

  3. Python文件操作与函数目录

    文件操作 python文件操作 函数 Python函数学习——初步认识 Python函数学习——作用域与嵌套函数 Python函数学习——匿名函数 python内置函数 Python函数学习——递归 ...

  4. 初学Python——文件操作第二篇

    前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...

  5. day8.python文件操作

    打开和关闭文件 open函数 用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写. file = open(file_name [, access_ ...

  6. 关于python 文件操作os.fdopen(), os.close(), tempfile.mkstemp()

    嗯.最近在弄的东西也跟这个有关系,由于c基础渣渣.现在基本上都忘记得差不多的情况下,是需要花点功夫才能弄明白. 每个语言都有相关的文件操作. 今天在flask 的例子里看到这样一句话.拉开了文件操作折 ...

  7. Python之路Python文件操作

    Python之路Python文件操作 一.文件的操作 文件句柄 = open('文件路径+文件名', '模式') 例子 f = open("test.txt","r&qu ...

  8. python 文件操作 r w a

    python基础-文件操作   一.文件操作 对文件操作的流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件       打开文件时,需要指定文件路径和以何等方式打开文件, ...

  9. Python:文件操作技巧(File operation)(转)

    Python:文件操作技巧(File operation) 读写文件 # ! /usr/bin/python #  -*- coding: utf8 -*- spath = " D:/dow ...

  10. 小学生都能学会的python(文件操作)

    小学生都能学会的python(文件操作) 1. open("文件路径", mode="模式", encoding="编码") 文件的路径: ...

随机推荐

  1. (js描述的)数据结构[集合结构](6)

    (js描述的)数据结构[集合结构](6) 一.集合结构特点 1.集合中的元素不能重复. 2.集合是无序的. 二.集合的代码实现 function Set() { this.items = {} //1 ...

  2. Python Requests-学习笔记(8)-重定向与请求历史

    重定向与请求历史 默认情况下,除了 HEAD, Requests会自动处理所有重定向. 可以使用响应对象的 history 方法来追踪重定向. Response.history 是一个:class:R ...

  3. Pytest系列(20)- allure结合pytest,allure.step()、allure.attach的详细使用

    如果你还想从头学起Pytest,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1690628.html 前言 allure除了支持pyte ...

  4. Java课程设计之——爬虫篇

    主要使用的技术 Httplcient Jsoup 多线程 dao模式 网络爬虫简介 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取 ...

  5. 复杂Excel转换与导入

    需求 把不同客户提供Excel 直接导入到系统中生成对应的收货单或是出货单.后端创建收货端和出货单的接口已经有现成的webservice或是标准的xml:这类需要做的就是把客户提供不同种类的Excel ...

  6. [php] 简单的实现一个错误接管类

    自己弄的一个错误接管类: <?php //---------------------------------- // Leephp 错误接管类 // 2017-07-06 // Pengchon ...

  7. HTML+CSS教程(五)外联样式、组选择器、圆角边框、样式优先级、伪类、盒子模型、元素溢出

    一.外联样式 通过link标签引入外部css文件夹中的xxx.css文件到head标签中 例: 二. 1.组选择器 选择器名称1,选择器名称2,选择器名称3,…{属性:属性值;属性;属性值} 例: & ...

  8. SQLServer系统表使用简介(sysobjects、syscolumns、syscomments等)转载

    sysobjects:记录了数据库中每一个表.视图.约束.存储过程等详细内容的表. 表中常用的字段如下 : 列名 数据类型 描述 name sysname 对象名 id int 对象标识号 xtype ...

  9. 大数据MapReduce相关的运维题

    1.在集群节点中/usr/hdp/2.4.3.0-227/hadoop-mapreduce/目录下,存在一个案例 JAR 包 hadoop-mapreduce-examples.jar.运行 JAR ...

  10. Ubuntu中设置共享文件夹

    1,设备--->共享文件夹--->共享文件夹 2,小加号---->添加路径(自己设置主机上任意的路径)--->设置名称(我的是gx)---->选中自动挂载和固定分配--- ...