博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文本操做小结
阅读量:4656 次
发布时间:2019-06-09

本文共 1854 字,大约阅读时间需要 6 分钟。

文本操做:
 对文件操作流程:
 1. 打开文件,得到文件句柄并赋值给一个变量
 2. 通过句柄对文件进行操作
 3. 关闭文件
 
 data = open("file").read()
 print(data)
 
 fs = open("yesterday","r", encoding="utf-8")         #fs即文件句柄
 data = fs.read()          #从头开始一行一行读文件内容,然后指针到了最后。
 data2 = fs.read()             #指针到了最后,再读是没有内容的。
 print(data)
 print("=" * 60)
 print(data2)
 
 
 模式:
 r  :   #只读
 w  :   #只写
 a  :   #追加也不能读
 r+ :   #读写,能读能写(写是追加的功能,写在最后面)
 w+  :   #写读,能写能读(写是追加的功能,写在最后面)
 a+ :   #追加读,能写能读(写是追加的功能,写在最后面)
 rb :   #以二进制编码格式读文件
 wb :   #以二进制编码格式写文件
 ab :   以二进制编码格式追加写文件
 
 bytes 和 str 使用decode
 str 和 bytes 使用encode
 
 f.write("我爱北京天安门\n") 
 f.write("天安门上天阳升")
 f.close       #文件关闭
 
 f.tell()      #按照字符数连计数的
 with open("yesterday", "r", encoding="utf-8") as fs:
  print(fs.tell())   #输出:0
  fs.read(10)
  print(fs.tell())   #输出:10
  
 with open("yesterday", "r", encoding="utf-8") as fs:
  print(fs.tell())   #输出:0
  fs.readline()
  print(fs.tell())   #输出:31 
  
 f.seek(0)      #回到0字符的位置
 with open("yesterday", "r", encoding="utf-8") as fs:
  print(fs.tell())   #输出:0
  fs.readline()
  print(fs.tell())   #输出:31
  fs.readline()
  print(fs.tell())   #输出:60
  fs.seek(31)     #指针回到31  
  fs.readline()
  print(fs.tell())   #输出:60
  
 f.encoding()     #返回编码
 f.truncate(20)     #截取20个字符
 
 fs.read()      #全部读取
 fs.readline()     #读取一行    
 fs.readline(5)     #读取一行的前5个字符
 fs.readlines()     #将每一行作为一个列表元素读取
 
 
 对于大数据文本的读取,例如一个20GB的文本
 with open("yesterday", "r", encoding="utf-8") as fs:
  for line in fs:    #从对象中循环读取
   print(line)
   
 最有效率的读取大文件
 
 进度条的使用:
 import sys,time
 for i in range(100):
  sys.stdout.write("#")
  sys.stdout.flush()
  time.sleep(0.1)
 
 
 为了避免打开文件后忘记关闭,可以通过管理上下文,即
 with open("yesterday", "r") as f:
 
 打开多个文件(一行代码不要超过80个字符)
 with open("yesterday", "r") as f1,with open("yesterday", "r") as f2:
 
 
 
 文件的修改:
 
 程序练习:
 
 实现简单的shell sed替换功能:
 
 import sys
 file_name = sys.argv[1]
 find_str = sys.argv[2]
 replace_str = sys.argv[3]
 
 f=""
 with open(file_name, "r") as fs1:
  for n in fs1:
   f += n.replace(find_str, replace_str)
   
 with open(file_name, "w") as fs2:
  fs2.write(f)
  fs2.flush()

转载于:https://www.cnblogs.com/brace2011/p/9185429.html

你可能感兴趣的文章
百度地图瓦片工具:定义坐标
查看>>
jmeter控制器--交替控制器
查看>>
hdu 5365 Run
查看>>
jap _spring _maven
查看>>
IIS principle
查看>>
Oracle 如何对中文字段进行排序
查看>>
第七章 数组实验
查看>>
003_ElasticSearch详解与优化设计
查看>>
windows hosts
查看>>
PHP 初学之登录查询小case
查看>>
Spring 4 官方文档学习(十五)CORS支持
查看>>
react学习笔记1
查看>>
Dao层设计
查看>>
css各种姿势的水平居中
查看>>
MYSQL 测试常用语句使用技巧
查看>>
基础细节知识
查看>>
树状数组求区间最大值
查看>>
一个简单的PHP网站结构
查看>>
Redis 学习之简介及安装
查看>>
jsp简单的学习
查看>>