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 二.类的概念 ...
随机推荐
- 4.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)—目录结构
Unix风格的目录结构通常使用一个目录名列表并用正斜杠分隔来表示,这样我们可以结合ls命令: $ ls /Users/mhartl/ruby 或者 $ ls /usr/local/bin 正如图20, ...
- 利用Costura.Fody制作绿色单文件程序(C#程序(含多个Dll)合并成一个Exe)
原文:利用Costura.Fody制作绿色单文件程序(C#程序(含多个Dll)合并成一个Exe) 开发程序的时候经常会引用一些第三方的DLL,然后编译生成的exe文件就不能脱离这些DLL独立运行了.这 ...
- CF [2016-2017 ACM-ICPC CHINA-Final][GYM 101194 H] Great Cells
很久以前做的一道思博题了,今天来补一补. 大致题意:在一个\(n*m\)的矩阵内填整数,数字在\([1,k]\)范围内.矩阵中某格的数为great number当且仅当与它同行同列的数字都严格比它小. ...
- POJ1850&&1019&&1942
这三道题都水的难以想象,所以就放在一起写 1850 题目大意:有一种一种序列排列方式(如同题目中给出的例子),然后给你一个序列,问你这个序列的排名 首先我们先判断无解的情况,这个就很简单了. 由于题目 ...
- JDK8漫谈——集合更强大
解决什么问题 集合计算不足 解决重复代码 背后思想 管道 封装 数据处理 内容说明 是什么 计算担当.集合用于数据存储,流用于数据计算,不会修改原始数据 内置循环.高级迭代器,内置循环和计算 单向.数 ...
- (11)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- Thrift高效通讯 (完结)
一. 什么是 RPC Restful 采用 Http 进行通讯,优点是开放.标准.简单.兼容性升级容易: 缺点是性能略低.在 QPS 高或者对响应时间要求苛刻的服务上,可以用 RPC(Remote P ...
- if...else 小练习
# 需求:猜年龄,可以让用户最多猜三次 age = 60 for i in range(3): guess = int(input("Input Age: ")) if guess ...
- 百度之星-day2-1004-二分答案
由于序列有序,求其中一个最优解,二分答案即可,注意二分时上边界满足才保存 #include<iostream> #include<stdio.h> #include<st ...
- 12.11 Daily Scrum
Today's Task Tomorrow's Task 丁辛 实现和菜谱相关的餐厅列表. 实现和菜谱相关的餐厅列表. 邓亚梅 美化搜索框UI. 美 ...
- Scrum Meeting NO.10
Scrum Meeting No.10 1.会议内容 2.任务清单 徐越 序号 近期的任务 进行中 已完成 1 "我"回答过的问题 -- 界面 √ 2 "问题" ...