一、python可以在不导入任何模块的情况下对文件完成读、写、追加,替换(稍复杂)。

二、打开文件:

1、f = open('text.txt')

这种方式打开,操作完后需要使用f.colse()关闭。

2、with open('text.txt') as f:

这种方式打开,运行完系统自动关闭,回收内存。建议使用。

三、文件打开模式:

python操作文件的时候,默认是只读的,需要指定各种模式才能进行相应的操作,模式列表:

r 以只读方式打开文件 r+ 先读,再写模式
rb 以二进制格式只读打开,图片,视频等文件 rb+ 二进制格式,先读再写
a 以追加格式打开f.write(),在最后一行追加,文件不存在,创建文件。 a+ 以读写格式打开f.write(),在最后一行追加,文件不存在,创建文件。
ab 和a区别于,二进制 ab+ 和ab区别于,二进制
w 写模式创建新文件,覆盖原文件,不可读 w+ 写读模式,先写再读,创建新文件,覆盖原文件
wb 和w区别于,二进制 wb+ 和wb区别于,二进制

四、文件的常用方法:

f.read(num) 默认读取整个文件,num可以设置设取的数据的大小(英文字符个数)
f.readlines(num) 默认读取整个文件,并以行为分隔符,返回值是一个列表,每行为一个元素
f.readline(num) 每次运行读取一行,最节省空间
f.write(str) 向文件写入数据,str必须是字符串类型。
f.tell() 显示当前指针位置,使用next()方法时不能使用tell()
f.seek(num) 设置指针位置,f.seek(0)文件开始,
f.flush() 强制把内存数据写入到文件。默认程序运行结束才写入
next(f)

逐行读取文件,f是打开的文件对象,不能与tell()同时用,一般迭代器用

print(read_file.tell())
OSError: telling position disabled by next() call

f.close() 关闭打开的文件,清除内存

例子1:

#假设文件test.txt内容如下
'''
0=000
1=100
2=200
3=300
4=400
5=500
6=600
7=700
8=800
'''
#1# 最省空间,最快的读取方式
# read_file.readline(),每运行一次,自动读取下一行
with open('file_text1.text', 'r') as read_file:f = read_file.readline()while f:                   # 在条件判断中,None和False都是False,其余为True,欢迎补充print(f, end='')              f = read_file.readline()
# 注意end,因为readline()读取包含换行符,print默认也加空行符,所以会出现空一行#2# 其它方法组合操作
with open('file_text1.text', 'r') as read_file:f = read_file.read(5)print(f)                    # 运行结果是0=000print(read_file.tell())     # 当前位置是5read_file.seek(22)          # 将指针移动到22print(read_file.readlines())# '=300\n' 从位置22开始以行为元素,组成一个列表

例子2:

正常情况下,文件正常关闭时才把内存文件写入,使用flush()可以把立即写入文件。

使用with语句,只要跳出语句块,自动关闭文件。

# input在with里面
d = {}
with open('file_text1.txt', 'w') as file:for i in range(20):file.write(str(i) + '=' + str(i)+'00\n')s=input('-----停止!文件未关闭,找不到file_text1.txt-----:')# 把input移动到with外面
d = {}
with open('file_text1.txt', 'w') as file:for i in range(20):file.write(str(i) + '=' + str(i)+'00\n')
s=input('-----停止!文件正常关闭,可以找到file_text1.txt-----:')# 使用flush(),可以打开'file_text1.txt',每行都会立即写入
d = {}
with open('file_text1.txt', 'w') as file:for i in range(20):file.write(str(i) + '=' + str(i)+'00\n')file.flush()s=input('-----停止!有文件,有内容-----:')

例子3:

修改文件:

文件只有读,写,追加,没有修改方法。

如果要修改只能读取到内存修改再覆盖回去。

对于大文件,这种方法十分占内存,可能会造成死机。

所以,按行读取,修改后存入临时文件,是一个好方法!

temp_file, source_file = 'temp_info.txt', 'info.txt'
# 同时打开两个文件
with open(temp_file, 'w', encoding='utf-8') as temp_file_write,\open(source_file, 'r', encoding='utf-8') as file_read:file_read_line = file_read.readline()while file_read_line:temp_file_write.write(file_read_line)file_read_line = file_read.readline()# 然后再把上面的temp_file和suorce_file换个位置,写回去就好了,是不是发现点什么?仔细思考吧:)

转载于:https://blog.51cto.com/yishi/1983626

Python基础:文件的操作相关推荐

  1. python基础------文件读写操作、re、os和sys模块

    1. 文件读取 1.1 file文件 file文件读取:只能写入字符串,如果要写入字符串以外的数据,先将他转换为字符串,文件内的数据不容易操作 #文件打开 file.open() #文件关闭 file ...

  2. Python基础-文件操作

    Python基础-文件操作 1.文件的打开和关闭 # 1.打开文件 # 默认r模式 只读 文件不存在,报错 # f = open('a.txt')# w模式 写权限 # 如果文件不存在,就会创建文件 ...

  3. Day6 python对文件的操作——百度飞桨领航团零基础Python入门

    python文件操作 前言 一.JSON是什么? 二.python对文件的操作 1.写入文件内容 2.打开.读取.关闭文件 文件数据若有问题采用两种解决方式 file对象的函数列表 写入文件内容 对象 ...

  4. python36_第36 p,就这几个方法,Python中文件的操作

    大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第X篇文章,第二阶段的课程:Python基础知识:Python中文件的操作(下篇). 学习本课程,建议先看一遍:[计算机基础知识]课 ...

  5. python list 平均值_python list 最大值和平均值Python基础 - 文件拷贝

    最近在备份手机上的照片的时候,纯手工操作觉得有些麻烦,就想写个脚本自动进行.因为备份的时候有些照片以前备份过了,所以需要有个判重操作. 主要功能在copyFiles()函数里实现,如下: 电脑技术网认 ...

  6. python对文件的操作都有什么_python中文件操作的相关内容总结(附示例)

    本篇文章给大家带来的内容是关于python中文件操作的相关内容总结(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1. 文件操作介绍 说到操作文件我们肯定会想到流,文件的操 ...

  7. Python基础--文件操作

    文件操作通常用来存储程序结果,以便下次可以直接使用,不必要重新运行一遍.文件操作最基本的三步:1.打开文件或者新建文件  2. 读或者写  3 关闭文件流保存数据. Python 访问模式如下: 打开 ...

  8. python 基础文件操作

    实时刷新到硬盘里 f= open('hh','w',encoding='utf8') f.write('gyftyftft') f.write('hghgh\njkkjk') f.flush()#实时 ...

  9. 第三章 Python基础——文件操作函数

    3.1三元运算 三元运算又称三目运算,是对简单条件的简写 if 条件成立:val=1 else:val=2 改成三元运算: val=1 if条件成立 else 2 3.2字符编码转换 编码的种类情况: ...

  10. python读文件每一行、并把这行替换-python基础--文件操作实现全文或单行替换

    python修改文件时,使用w模式会将原本的文件清空/覆盖.可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开. 替换文本中的taste 为 tasting Yesterday whe ...

最新文章

  1. R语言构建xgboost模型使用早停法训练模型(early stopping):自定义损失函数(目标函数,loss function)、评估函数(evaluation function)
  2. 阿里面试:索引失效的场景有哪些?索引何时会失效?
  3. P4887 第十四分块(前体) 莫队
  4. 微软研究员在ImageNet计算机视觉识别挑战中实现里程碑式突破
  5. linux磁盘空间清理
  6. dijkstra算法优化
  7. List去除重复的元素
  8. 2019年京东Java研发岗社招面经(面试经历+真题总结+经验分享)!
  9. apply和call的区别
  10. 用Java开源项目JOONE实现人工智能编程
  11. B4A-Basic4android
  12. 加速磁盘碎片整理的六大技巧
  13. OpenCV的Scalar对象怎样初始化,如何取分量值,如何与标量相乘?
  14. python termios
  15. windows 安装Abin
  16. Scratch(图形化编程工具)绘制3D六面体,3D作品的制作过程!
  17. React Hook 监听路由切换实时同步渲染页面功能
  18. Matlab 批量CT图像进行肺实质分割
  19. Python Djan 路由对应的名称
  20. TMC5240AUU+高性能步进电机控制器-加减速规划运动控制芯片

热门文章

  1. OOAD实践之路——真实案例解析OO理论与实践(五、需求分析之前的故事)
  2. 周日慕田峪生鱼片之旅,失败的第一次出台
  3. 吐槽Javascript系列三:数组的陷阱
  4. ESXi vSphere Client中copy paste如何启用
  5. ORACLE sid,pid,spid总结
  6. 两个Android选择文件对话框
  7. 基于Discuz的原生态MVC框架Uxf
  8. 相机技术公司Lytro获6000万美元D轮融资,阿里巴巴参投
  9. HD-ACM算法专攻系列(9)——大菲波数
  10. jQuery Easy UI Panel(面板)组件