1.文件的操作流程: 打开(open), 操作(read,write), 关闭(close)

下面分别用三种方式打开文件,r,w,a 模式 . "a"模式将不会覆盖原来的文件内容, 会以追加的形式写入。

f=open("file1.txt","r",encoding="utf-8")  # 默认以 "r" 模式打开

f=open("file2.txt","w",encoding="utf-8")

f=open("file3.txt","a",encoding="utf-8")

2. read, readline, readlines

(1) read() 一次性读出所有文件内容, 并且只能读一次

(2) readline() 一行一行读出文件的内容

(3)readlines() 将以列表的形式读出来

3.高效遍历文件内容, 并在第10行插入一行指定内容

  1. f = open("lyric.txt","r",encoding="utf-8")
  2. count = 0
  3. for line in f:
  4. if count == 9:
  5. print("------------------我是分割线-------------------")
  6. count += 1
  7. continue
  8. print(line.strip())
  9. count +=1

4.tell(), seek() 属性

tell() 打印光标所在的位置

seek(数字) 回到“数字” 所示的光标位置

  1. # example
  2.  
  3. f = open("lyric.txt","r",encoding="utf-8")
  4. print(f.tell()) # 打印光标所在的位置
  5. print(f.readline())
  6. print(f.readline())
  7. print(f.readline())
  8. print(f.tell())
  9. f.seek(0) #回到最初的索引地方
  10. print(f.readline())

5. f.truncate(20)

truncate 方法必须是以"a" 模式打开, 从文件开头开始截断 20 个字符

6. flush 用法 ,可以实时刷新新的内容到硬盘

  1. >>> f = open("test.txt","w")
  2. >>> f.write("this is just for testt\n")
  3. 22
  4. >>> f.flush()

7. 文件的修改, 将文件file1 特定行修改后, 写到另一文件中file1_new

思路:读写文件分离, 读一行,写一行, 当遇到特定的行, 利用字符串replace 替换

  1. f = open('lyric.txt','r',encoding="utf-8")
  2. f_new = open('lyric_modify.txt','w',encoding="utf-8")
  3. for line in f:
  4. if line.strip() == "我的梦":
  5. # print(repr(line))
  6. #if "我的梦" in line:
  7. line = line.replace("我的梦","Frank's dream")
  8. f_new.write(line)
  9. else:
  10. f_new.write(line)
  11. f.close()
  12. f_new.close()

8. 文件的修改进阶---将参数1 修改为参数2

  1. import sys
  2. f = open("lyric.txt","r",encoding="utf-8")
  3. f_new = open("lyric_2.txt","w",encoding="utf-8")
  4. origi_str = sys.argv[1]
  5. replace_str = sys.argv[2]
  6. for line in f:
  7. if origi_str in line:
  8. line = line.replace(origi_str,replace_str)
  9. f_new.write(line)
  10. f.close()
  11. f_new.close()

python 数据类型 ---文件一的更多相关文章

  1. python 数据类型---文件二

    1.打印进度条 import sys,time for i in range(20): sys.stdout.write("#") sys.stdout.flush() #不等缓冲 ...

  2. Python基础--文件操作和集合

    这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件file.txt: 我们哭了 ...

  3. Python数据类型解析(基础篇)

    Python语言的类型   数字类型   字符串类型   元组类型   列表类型   文件类型  字典类型     1.数字类型   Python有三种数字类型:整数,浮点数,复数 Python中的整 ...

  4. Python 中文件操作

    上代码: import os import os.path rootdir = "d:/code/su/data" # 指明被遍历的文件夹 for parent,dirnames, ...

  5. PYTHON 100days学习笔记007-1:python数据类型补充(1)

    目录 day007:python数据类型补充(1) 1.数字Number 1.1 Python 数字类型转换 1.2 Python 数字运算 1.3 数学函数 1.4 随机数函数 1.5 三角函数 1 ...

  6. PYTHON数据类型(进阶)

    PYTHON数据类型(进阶) 一.字符串.列表.字典.元祖.集合的补充 str #captalize 首字母大写,其余小写 s1.capitalize() #swapcase 大小写翻转 s1.swa ...

  7. PYTHON数据类型(基础)

    PYTHON数据类型(基础) 一.列表.字典.元祖.集合的基本操作 列表 创建 l1=[] l1=list() l1=list(['你好',6]) 增 l1.append('hu') l1.inser ...

  8. Python数据类型方法整理

      前言:主要是对Python数据类型做一个整理,部分知识点源于<python3程序开发指南(第二版)>   一.Python的关键要素 1.1 要素1:数据类型  int类型 str类型 ...

  9. 第2章 Python编程基础知识 第2.1节 简单的Python数据类型、变量赋值及输入输出

    第三节 简单的Python数据类型.变量赋值及输入输出 Python是一门解释性语言,它的执行依赖于Python提供的执行环境,前面一章介绍了Python环境安装.WINDOWS系列Python编辑和 ...

随机推荐

  1. 浅谈 jQuery 核心架构设计

    jQuery对于大家而言并不陌生,因此关于它是什么以及它的作用,在这里我就不多言了,而本篇文章的目的是想通过对源码简单的分析来讨论 jQuery 的核心架构设计,以及jQuery 是如何利用javas ...

  2. FREERTOS 手册阅读笔记

    郑重声明,版权所有! 转载需说明. FREERTOS堆栈大小的单位是word,不是byte. 根据处理器架构优化系统的任务优先级不能超过32,If the architecture optimized ...

  3. html与html5

    HTML 是一种在 Web 上使用的通用标记语言.HTML 允许你格式化文本,添加图片,创建链接.输入表单.框架和表格等等,并可将之存为文本文件,浏览器即可读取和显示.HTML 的关键是标签,其作用是 ...

  4. const,static,extern 简介

    const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...

  5. kafka学习笔记:知识点整理

    一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...

  6. SDWebImage源码解读_之SDWebImageDecoder

    第四篇 前言 首先,我们要弄明白一个问题? 为什么要对UIImage进行解码呢?难道不能直接使用吗? 其实不解码也是可以使用的,假如说我们通过imageNamed:来加载image,系统默认会在主线程 ...

  7. 讓TQ2440也用上設備樹(1)

    作者:彭東林 郵箱:pengdonglin137@163.com QQ:405728433 開發板 TQ2440 + 64MB 內存 + 256MB Nand 軟件 Linux: Linux-4.9 ...

  8. EC笔记:第4部分:21、必须返回对象时,别返回引用

    使用应用可以大幅减少构造函数与析构函数的调用次数,但是引用不可以滥用. 如下: struct St { int a; }; St &func(){ St t; return t; } 在返回t ...

  9. Take into Action!

    很久没有认真地写文字了. 刚毕业一两年断断续续在csdn上写过一些当时的工作记录,然后没有坚持下去.有时候是觉得自己不牛,记录的东西旁人看起来也许不值一提:有时候觉得结婚生娃了,然后时间不够用(确实是 ...

  10. 【Java大系】Java快速教程

    感谢原作者:Vamei 出处:http://www.cnblogs.com/vamei Java是面向对象语言.这门语言其实相当年轻,于1995年才出现,由Sun公司出品.James Gosling领 ...