python成长之路五-文件操作
1,文件操作
f = open("D:\种子.txt",encoding="utf-8",mode="r")
# 打开一个种子.txt文件,权限按操作为只读模式 f = open("D:\种子.txt","r",encoding="utf-8")
# 简写,"r"也可以不写,默认为只读
读方法:
1,read # r模式 ,按照字符读取。
f =open("文件操作1",encoding="utf-8",mode="r")
content = f.read(5) # 读取文件里的5个字符
print(content)
f.close()
2,readline # 按行读取
f = open("文件操作1",encoding="utf-8",mode="r")
print(f.readline()) # 打印第一行字符串
f.close()
3,readlines #按行读取,返回一个列表
f = open("文件操作1",encoding="utf-8",mode="r")
content = f.readlines()
for i in range(len(content)): # 循环列表
content[i] = content[i].strip() # 通过索引去掉每个元素的空格跟换行符
print(content)
f.close()
4,文件较大,通过for循环遍历每行字符串
f = open("文件操作1",encoding="utf-8")
for i in f:
print(i.strip())
f.close()
5,rb 文件凡是操作带b字母,都是与非文字类文件相关的。
f = open(r"D:\Qishijihua\视频\day08\day08\美女1.jpg",mode="rb") # r 为转义字符
content = f.read()
print(content)
f.close()
6,r+ 读写:先读后写
f = open("文件操作1",encoding="utf-8",mode="r+")
content = f.read() # 先读
print(content)
f.write("") # 再写
f.close()
# 如果不读直接写会覆盖
写模式
1,w 没有文件,创建文件再写入。有文件清空,后写入。
f = open("种子.txt",encoding="utf-8",mode="w")
f.write("www.hao123.com")
f.close()
2,wb 非文字类写入
f = open(r"D:\Qishijihua\视频\day08\day08\美女1.jpg",mode="rb")
content = f.read()
print(content)
f1 = open("美女2.jpg",mode="wb")
f1.write(content)
f.close()
f1.close()
3,w+ 写读
f = open("文件操作2",encoding="utf8",mode="w+")
f.write("我爱python")
content = f.read()
print(content)
f.close()
追加
1,a 没有文件创建文件也要写。有文件直接在文件后面追加
f = open("文件操作2",encoding="utf-8",mode="a")
f.write("\n我爱北京天安门")
f.close()
2,a+ 写读
f = open("文件操作1",encoding="utf-8",mode="a+")
content = f.write("\n天安门上太阳升")
print(content)
f.close()
其他方法:
1,seek 调整光标,seek(0)调整到开始,seek(0,2)调整到结尾。
2,readale 是否可读
3,writable 是否可写
4,with 主动关闭文件句柄
5,os.remove 删除文件名
6,os.rename 修改文件名
# 其他方法:readale ,writable,seek
# f = open('文件操作1',encoding='utf-8')
# if f.writable():
# content = f.read()
# print(content)
# f.close() # seek 调整光标到开始,seek(0) 调整光标到结尾seek(0,2) *****
# f = open('文件操作1',encoding='utf-8')
# f.seek(6) # 按照字节去移动光标
# content = f.read()
# print(content)
# f.close() # f = open('文件操作1',mode='rb')
# print(f.read())
# f.seek(6) # 按照字节去移动光标
# content = f.read()
# print(content)
# f.close() # tell 告知光标的位置 *****
# f = open('文件操作1',encoding='utf-8')
# f.seek(0,2) # 按照字节去移动光标
# print(f.tell())
# f.close() # truncate 要在writable模式下进行截取。
# r+ a+ ..不能在w模式下使用,对原文件进行截取
# f = open('文件操作1',encoding='utf-8',mode='r+')
# print(f.truncate(6))
# f.close() # 1,主动关闭文件句柄
# with open('文件操作2',encoding='utf-8') as f1:
# print(f1.read())
# 2,开启多个文件句柄。
# with open('文件操作2',encoding='utf-8') as f1,\
# open('文件操作3',encoding='utf-8',mode='w') as f2:
# print(f1.read())
# f2.write('666666')
其他方法代码
# 文件的改的操作 # 1,以读的模式打开原文件,产生一个文件句柄f1.
# 2,以写的模式创建一个新文件,产生一个文件句柄f2.
# 3,读取原文件内容,进行修改,并将修改后的写入新文件。
# 4,将原文件删除。
# 5,将新文件重命名成原文件。 # low版
import os
with open('alex的深度剖析', encoding='utf-8') as f1,\
open('alex的深度解析.bak',encoding='utf-8',mode='w') as f2:
old_content = f1.read()
new_content = old_content.replace('alex','SB')
f2.write(new_content)
os.remove('alex的深度剖析')
os.rename('alex的深度解析.bak', 'alex的深度剖析')
# import os
with open('alex的深度剖析', encoding='utf-8') as f1,\
open('alex的深度解析.bak',encoding='utf-8',mode='w') as f2:
for line in f1:
new_line = line.replace('SB','alex')
f2.write(new_line)
os.remove('alex的深度剖析')
os.rename('alex的深度解析.bak', 'alex的深度剖析')
文件的改的操作
python成长之路五-文件操作的更多相关文章
- python之路(五)-文件操作
文件操作无非两个,即:读.写 python 2.x: 文件句柄 = file('文件路径', '模式') python3.x: 文件句柄 = open('文件路径', '模式') 打开文件的模式有: ...
- Python学习之路4 - 文件操作&编码转换
文件操作 文件操作大概分三步: 把文件打开. 操作文件. 把文件关上. 打开文件 打开文件用open()函数,打开成功后返回一个资源,具体语法如下. open(要打开的文件,打开方式,打开文件的格式, ...
- python爬虫之路——基本文件操作
介绍python如何打开文件和读取数据 新建TXT文档,为追加模式: f=open('c;/wendang/demo.txt','a+') content="abcdefg123456789 ...
- (转)Python成长之路【第九篇】:Python基础之面向对象
一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程-->错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个 ...
- 【Python成长之路】装逼的一行代码:快速共享文件
[Python成长之路]装逼的一行代码:快速共享文件 2019-10-26 15:30:05 华为云 阅读数 335 文章标签: Python编程编程语言程序员Python开发 更多 分类专栏: 技术 ...
- (Python )格式化输出、文件操作、json
本节学习Python的格式化输出,文件操作以及json的简单用法 1.格式化输出 将非字符串类型转换成字符串,可以使用函数:str() 或者repr() ,(这两个函数的区别目前我还没搞懂,求解答) ...
- 【Python成长之路】Python爬虫 --requests库爬取网站乱码(\xe4\xb8\xb0\xe5\xa)的解决方法【华为云分享】
[写在前面] 在用requests库对自己的CSDN个人博客(https://blog.csdn.net/yuzipeng)进行爬取时,发现乱码报错(\xe4\xb8\xb0\xe5\xaf\x8c\ ...
- python成长之路第三篇(4)_作用域,递归,模块,内置模块(os,ConfigParser,hashlib),with文件操作
打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.作用域 2.递归 3.模块介绍 4.内置模块-OS 5.内置模块-ConfigParser 6.内置模块-has ...
- python成长之路第一篇(5)文件的基本操作
一.三元运算 我们在上章学习的if,,else,,有一种简便的方法 他的表达式是这样的:变量 = 值1 if 条件 else 值2 解释过来就是如果aaa等于sss则输出值1否则输出值2 二.类的概念 ...
随机推荐
- wifidog源码分析 - 客户端检测线程
引言 当wifidog启动时,会启动一个线程(thread_client_timeout_check)维护客户端列表,具体就是wifidog必须定时检测客户端列表中的每个客户端是否在线,而wifido ...
- java并发编程CountDownLatch
/** * CountDownLatch用法 * CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能.比如有一个任务A, * 它要等待其他4 ...
- SPOJ33&POJ1934 Trip LCS
题目传送门:https://www.luogu.org/problemnew/show/SP33 题目大意:给出两个字符串,求其LCS(最长公共子序列)的长度与具体方案(相同的串算作同一方案).数据组 ...
- React-简书视频学习总结
react的基础语法 redux这个数据层框架 react-redux如何方便我们在react中使用redux react-router 4.0 这样的非常实用的相关的第三方模块儿 immutable ...
- Vue-嵌套路由
一个被渲染组件同样可以包含自己的嵌套 <router-view>.同样要有vue-router的三个要素:路由map .路由视图.路由导航. 举个在"/apple" 下 ...
- 生成32位UUID及生成指定个数的UUID
参考地址:https://blog.csdn.net/xinghuo0007/article/details/72868799 UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯 ...
- [Oralce][InMemory]如何确定一个表已经被Populate 到In Memory 中?
[Oralce][InMemory]如何确定一个表已经被Populate 到In Memory 中? 以如下方法来查看 POPULATE_STATUS 是不行的. SQL> select ins ...
- 【php增删改查实例】第十三节 - EasyUI列格式化
因为easyUI的datagrid组件是横着一格一格加载数据的,一行加载好了之后才会去加载下一行.所谓的列格式化,就是在加载某一列的所有单元格时,对即将加载到这些单元格的数据进行二次包装. 比如,我们 ...
- 懒人小工具:T4生成实体类Model,Insert,Select,Delete以及导出Excel的方法
由于最近公司在用webform开发ERP,用到大量重复机械的代码,之前写了篇文章,懒人小工具:自动生成Model,Insert,Select,Delete以及导出Excel的方法,但是有人觉得这种方法 ...
- Js把Json序列化为Java接受的对象。
服务器端 Java定义 data class role(var name: String = "", var remark: String = "") data ...