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 二.类的概念 ...
随机推荐
- 如何传递参数给ASP.NET Core的中间件(Middleware)
问题描述 当我们在ASP.NET Core中定义和使用中间件(Middleware)的时候,有什么好的办法可以给中间件传参数吗? 解决方案 在ASP.NET Core项目中添加一个POCO类来传递参数 ...
- EZ 2018 05 20 NOIP2018 模拟赛(十五)
这次的比赛充满着玄学的气息,玄学链接 首先讲一下为什么没有第十四场 其实今天早上9点时看到题目就叫了:原题! 没错,整套试卷都做过,我还写了题解 然后老叶就说换一套,但如果仅仅是这样就没什么 但等13 ...
- 【JVM.5】类文件结构
鲁迅曾经说过:代码编译的结构从本地机器码转变为字节码,是存储格式发展的一小步,确是编程语言发展的一大步. 一.无关性的基石 Java设计者在最初就承诺过“In the future, we will ...
- 阿里云centos内docker的搭建
由于docker在17之后的版本分成了docker EE(企业版)和docker CE(社区版),那么我们在安装的时候就要开始纠结的选择了,这里我推荐了docker CE(社区版). 实际上这两个版本 ...
- c#基础系列1---深入理解值类型和引用类型
"大菜":源于自己刚踏入猿途混沌拾起,自我感觉不是一般的菜,因而得名"大菜",于自身共勉. 不知不觉已经踏入坑已10余年之多,对于c#多多少少有一点自己的认识, ...
- 使用github的感想
github的仓库链接:https://github.com/liyan941016/test github是一个基于git的代码托管平台,要想使用github第一步就要注册账户,然后要创建一个仓库 ...
- vue element-ui upload 实现带token上传
<el-upload class="upload-demo" :data ="uploadData" :headers = "headers&q ...
- shell脚本--continue、break
shell中的continue和break和其他语言中的使用方法一模一样:continue用于跳过本次循环,break用于中断本层的循环 下面是使用例子: #!/bin/bash #文件名:test. ...
- HDU 2096 小明A+B
http://acm.hdu.edu.cn/showproblem.php?pid=2096 Problem Description 小明今年3岁了, 现在他已经能够认识100以内的非负整数, 并且能 ...
- 面象对象设计原则之四:接口隔离原则(The Interface Segregation Principle,ISP)
接口隔离原则定义如下: 接口隔离原则(Interface Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口. 根 ...