open()函数来打开一个文件, 获取文件句柄(文件句柄是一个可迭代的对象). 然后通过文件句柄就可以进行各种各样的操作了了. 根据打开方式的不同能够执行的操作也会有相应的差异

因为文件句柄是一个可迭代的对象,可以通过for循环读取数据,并且它每次读取的时候都是读取一行内容

f = open('gg','r',encoding = 'utf-8')
for i in f:#读取文件中的内容。 一行一行的读取。 每次读取的内容交给前面的变量print(i.strip)

上面每次循环相当于直接使用f.readline()

f.writelines()  直接将一个列表的内容传递写进去,注意的是写入的东西都必须是字符串,如果不是字符串的话就会报错

f.writable()    判断文件是否是可写的

f.read()  一次性直接读取全部,如果里面写入了数据则按照数字读取文本的个数eg:f.read(2) 表示读取文件的多少个字符

f.readlines() 整行读取为一个元素,并将每行作为一个元素添加到列表中(说明返回值是一个列表)一次性全部读取

f.readline()  只是读取一行

f.readable()   判断文件否是可读的

在打开一个文件的时候如果文件是以绝对路径的方式进行打开的时候,由于含有’\’eg: C:\Users\vivi\Desktop\python编程\练习答案  由于‘\’在编程中有自己的意义,如果想要在编程中实现的话可以通过转义字符’\’

eg: ‘C:\\Users\\vivi\\Desktop\\python编程\\练习答案’

或者是使用时 r ‘C:\Users\vivi\Desktop\python编程\练习答案’‘r’使含有特殊意义的字符都失效

mode :模式

r   只读  (文件必须是已经存在)

w   写入,如果文件已经存在则将原来的文件覆盖,再写入(文件不存在的话可以自动创建)

a  打开一个文件用于追加写入  (文件不存在的话可以自动创建)与w模式一样,不过写入的时候,写入到文件的最后

文本的复制
f = open('gg','r',encoding ='utf-8')
y = open('dd','w',encoding = 'utf-8')
for i in f:y.write(i)
f.close()
y.close()

b - bytes 读取和写入的是字节 , 用来操作非文本文件(图片, 音频, 视频)

# rb, wb, ab(作用与上面的一致,不同的是这是用来操作非文本文件的)

复制一张图片的操作,基本与上面的文本复制一样

gg = open(r'C:\Users\vivi\Desktop\非.jpg','rb')
f = open(r'C:\Users\vivi\Desktop\ren.jpg','wb')
for i in gg:f.write(i)
gg.close()
f.close()

r+ w+ a+   + 表示的是功能的扩展,# r+  读写, w+  写读, a+ 追加写读, r+b, w+b, a+b(功能一样,不过是用于非文本文件的操作)

r+ 模式下写入的内容按照指针的位置进行编写,默认的指针位置是在文件的开头,如果使用read进行读取的时候,指针的位置会发生变化

在读取之后才进行写入是没有问题的,因为读取完全部内容之后,不论你读取多少内容。再次写入的时候都是在末尾,但是如果先写入在读取的话,就会将文本的内容进行覆盖

w+

f = open("person", mode="w+", encoding="utf-8") # 先清空。 然后再操作

f.write("你好。 我叫肿瘤君")

content = f.read() # 写入东西之后。 光标在末尾。 读取不到内容的

print(content)

f.close()

a+, 不论指针(光标)在何处 写入的时候都是在末尾

对于光标的 操作:

f.seek(3) # 以字节为单位

# info = f.read(3) # 读取三个字符

打开一个文件,不从开头开始读(定位)

seek(offset,from)

一个偏移量  一个方向

from 中  0  表示文件开头

1    表示当前位置

2    表示文件末尾

偏移量    选定的位置向右偏移指定的字节

eg:

# 把光标移动到文件的开头: seek(0)

# 把光标移动到末尾: seek(0, 2)

gg = f.tell()  可以知道当前已经读取到那个字节

f.seek(0,2) 回到文本的末尾

pan.seek(0,gg)   回到先前的光标的位置

truncate() 截断文件. 慎用 无法恢复

f.seek(5) # 光标移动到5

f.truncate() # 默认从开头截取到光标位置

f.truncate(3) # 从头截取到3字节,之后光标后面的 所有内容全部删除

python 不支持直接进行文件修改操作#文件内容的修改import os
with open('gg',mode = 'r',encoding = 'utf-8') as f ,open('ff',mode = 'w',encoding =' utf-8') as f2:for i in f:f2.write(i.replace('中','卫'))
os.remove('gg')
os.rename('ff','gg')

将文本中的内容提取出来并添加到字典中

f = open("水果.data", mode="r", encoding="utf-8")
titles = f.readline().strip() # 读取第一行 id,name,price,num
t_list = titles.split(",") # 【id,name,price,num】

lst = []
for line in f: # "1,苹果,500,60000"  {id:1,name:liulian, num:xx, price:xxx}dic = {}ll = line.strip().split(",")for i in range(len(t_list)):dic[t_list[i]] = ll[i]lst.append(dic)
f.close()
print(lst)

为了解决大文件的问题

转载于:https://www.cnblogs.com/vivi0403/p/9857156.html

python文本操作相关推荐

  1. python文本操作—读、写

    文本文件存储的数据有很多,我们需要把这些文本里的内容读出来,然后在浏览器上面显示. 1.读取整个文本文件 格式: with open(路径) as 变量: 变量.read() 关键字with作用:在不 ...

  2. C++文本操作.Vs.Python

    C++利用文件流: (1):读取一个字符 std::string TestTxt(argv[3]); //freopen(TestTxt.c_str(),"r",stdin);// ...

  3. 【新星计划】 Python的txt文本操作-读、写

    Python的txt文本操作-读.写 读取txt文本 python常用的读取文件函数有三种read().readline().readlines() 以读取上述txt为例,看一下三者的区别 read( ...

  4. python怎么重命名word文件,Python读取word文本操作详解

    本文研究的主要问题时Python读取word文本操作,分享了相关概念和实现代码,具体如下. 一,docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就 ...

  5. office是python打开方式_Python读取word文本操作详解

    本文研究的主要问题时Python读取word文本操作,分享了相关概念和实现代码,具体如下. 一,docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就 ...

  6. python读取word内容复制粘贴,Python读取word文本操作详解

    本文研究的主要问题时Python读取word文本操作,分享了相关概念和实现代码,具体如下. 一,docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就 ...

  7. Python代码 | 文本操作 统计英文文本中,每个字母出现的次数

    Python代码 | 文本操作 统计英文文本中,每个字母出现的次数 # -*- coding: utf-8 -*- # 使用oepn获取文件路径 # path=open("arrogant. ...

  8. python基础编程 统计英语文章词频并排序 文本操作 继承

    python编程 统计英语文章词频 文本操作 继承 统计英语6级试题中所有单词的词频,并对词频进行排序 import re# 请根据处理要求下面区域完成代码的编写. def get_artical(a ...

  9. Python之文本操作

    Python之文本操作 文本文件 文本文件是一种典型的顺序文件,其文件的逻辑结构又属于流式文件.文本文件是指以 ASCII 码方式(也称文本方式)存储的文件,更确切地说,英文.数字等字符存储的是 AS ...

最新文章

  1. sleep() 函数
  2. 相关滤波跟踪(MOSSE)
  3. No relevant classes found. No output generated、metaObject连接错误
  4. Hadoop分布式系统的安装部署
  5. Django项目--登录判断装饰器
  6. oracle修改表字段约束条件,Oracle创建表、修改表、删除表、约束条件语法
  7. Qualcomm 推出下一代物联网专用蜂窝技术芯片组!
  8. cat和EOF的组合妙用
  9. python常用数学符号_ML-常用数学符号(示例代码)
  10. 计算机屏幕出现条纹w7,电脑重装win7后屏幕出现条纹怎么办
  11. 日本研发创可贴式的皮肤传感器
  12. 30分钟java桌球小游戏,30分钟完成桌球小游戏项目
  13. 导航背景变换 php,jQuery实现的背景动态变化导航菜单效果
  14. 【新2023Q2模拟题JAVA】华为OD机试 - 预订酒店
  15. 小秘谈币:什么是实在的佛系炒币?
  16. Swing入门级项目全程实录第7讲
  17. linux 只允许运行指定程序,我命由我不由天!如何只让程序运行指定时间?
  18. 【机会】二维火招聘DBA
  19. 《算法图解-像小说一样有趣的算法入门书》最全读书笔记--Binrry(冰蕊)
  20. 阻容感基础09:电感器原理(4)-趋肤效应和气隙磁芯

热门文章

  1. javax顶层接口分析
  2. 初探团队基于session的探索性测试
  3. 线程间操作无效: 从不是创建控件的线程访问它
  4. 51nod 1040:最大公约数之和(数论)
  5. 收缩 tempdb 数据库
  6. 免费好用的Diff和Merge工具大总结
  7. 解剖SQLSERVER 第十一篇 对SQLSERVER的多个版本进行自动化测试(译)
  8. The Memory Managerment of the Computer
  9. 区块链100讲:EOS环境安装和智能合约部署实战
  10. 云栖大会变迁史(2009-2017)