【学习笔记】--- 老男孩学Python,day9, 文件操作
有 + 就是有光标,注意光标位置
不同模式打开文件的完全列表: http://www.runoob.com/python/python-files-io.html
| 模式 | 描述 |
|---|---|
| r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
| rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
| r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
| rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
| w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
| wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
| w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
| wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
| a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
| ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
| a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
| ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
下图很好的总结了这几种模式:

| 模式 | r | r+ | w | w+ | a | a+ |
|---|---|---|---|---|---|---|
| 读 | + | + | + | + | ||
| 写 | + | + | + | + | + | |
| 创建 | + | + | + | + | ||
| 覆盖 | + | + | ||||
| 指针在开始 | + | + | + | + | ||
| 指针在结尾 | + | + |
今日主要内容文件操作: 1. r
# 路径有两种:
# 1. 相对路径, 相对于你当前程序所在的文件夹.(必须掌握)
# ../ 返回上一层目录
# 相对的是当前程序所在的文件夹
# 2. 绝对路径. 1.从磁盘根目录寻找. 2.互联网上的一个绝对路路径
f = open("file/wuse", mode="r", encoding="utf-8")
s = f.read()
f.close() # 关闭句柄
print(s)
f = open("吃的", mode="r", encoding="utf-8")
for line in f: # 每次读取一行. 赋值给前面的line变量
print(line)
f.close()
2. w
f = open("小护士模特", mode="w", encoding="utf-8") # 写入之前会情掉原来的内容
f.write("杜十娘")
f.flush()
f.close()
wb
f = open("小护士模特",mode="wb") # 读取的内容直接就是字节
f.write("你不好".encode("utf-8"))
f.close()
# w, r, a === wb, rb, ab b: 处理的是非文本
3. a
f = open("小护士模特", mode="a", encoding="utf-8") # 在原来的基础上进行追加内容.
f.write("小龙女")
f.flush()
f.close()
4. r+ 读写模式. 需要移动光标进行反复读写
# f = open("老师点名", mode="r+", encoding="utf-8") # r+模式, 默认情况下光标在文件的开头, 必须先读, 后写
# f.write("周润发")
# s = f.read()
# f.flush()
# f.close()
# print(s)
# f = open("精品", mode="r+", encoding="utf-8")
# s = f.read(3)
# # 不管你前面读了几个. 后面去写都是在末尾
# # f.write("哈哈") # 1.在没有任何操作之前进行写. 在开头写 2. 如果读取了一些内容. 再写, 写入的是最后
#
# # print(ss)
f = open("精品", mode="r+", encoding="utf-8")
# f.read(3)
# f.seek(3) # 移动到xx位置
# 移动到开头: f.seek(0) 开头
# 移动到末尾: f.seek(0, 2) 末尾 第二个参数有三个值. 0: 再开头, 1: 在当前, 2: 末尾
#超人的都是精品.abcdefg潘长江是精品巴拉巴拉小魔仙哈哈
# f.seek(6) # 移动6个字节. 2个字
# s = f.read(3) # 读取3个字
# print(s)
# f.seek(0)
# ss = f.read(3)
# print(ss)
# s = f.read()
# f.seek(0)
# ss= f.read()
# print(s)
# print(ss)
5. w+
f = open("亵渎", mode="w+", encoding="utf-8") # w 操作.会清空原来的内容. w+是不用的.
f.write("今天天气")
f.seek(0)
s = f.read()
print(s)
f.flush()
f.close()
6. a+
7. b bytes 读写操作的是字节. 用在非文本上
8. seek() 移动光标到xx位置 开头: seek(0), 末尾: seek(0,2) 9. 文件修改 创建新文件. 把修改后的内容写入新文件. 删除老文件. 重命名新文件 import os os.remove("")删除文件 os.rename("源文件", "新文件名") 重命名文件
import os
with open("吃的", mode="r", encoding="utf-8") as f1, \
open("吃的_副本", mode="w", encoding="utf-8") as f2:
# s = f1.read()
# ss = s.replace("肉", "菜")
# f2.write(ss)
for line in f1:
s = line.replace("菜", "肉")
f2.write(s)
os.remove("吃的") # 删除文件
os.rename("吃的_副本", "吃的") # 重命名文件
for line in f: line 一行数据
with open("文件名") as f: 不需要关闭文件句柄
【学习笔记】--- 老男孩学Python,day9, 文件操作的更多相关文章
- python学习笔记:第8天 文件操作
目录 1. 文件操作介绍 2. 文件操作的几种方式 3. 文件的操作的方法 1. 文件操作介绍 说到操作文件我们肯定会想到流,文件的操作都是通过流来操作的.在python中文件的操作非常简单,并不像J ...
- python学习笔记(22)-os文件操作模块
疑问: 如果打开操作一个文件,是用绝对路径好还是相对路径好? os模块,在lib下面,可以直接引入的,直接使用import. 一.新建一个目录,新建一个文件夹 import os #新建一个文件夹 o ...
- arm-linux学习笔记3-linux内存管理与文件操作
配置好linux系统之后需要vim配置一下,有助于我们的编程,主要的配置如下 在/etc/vim/vimrc文件中 "显示行号 set number "自动缩进 set autoi ...
- java学习笔记之IO编程—File文件操作类
1. File类说明 在Java语言里面提供有对于文件操作系统操作的支持,而这个支持就在java.io.File类中进行了定义,也就是说在整个java.io包里面,File类是唯一一个与文件本身操作( ...
- 孤荷凌寒自学python第三十三天python的文件操作初识
孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...
- 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容
孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...
- Python :open文件操作,配合read()使用!
python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...
- 学习笔记《简明python教程》
学习笔记<简明python教程> 体会:言简意赅,很适合新手入门 2018年3月14日21:45:59 1.global 语句 在不使用 global 语句的情况下,不可能为一个定义于函数 ...
- Java NIO 学习笔记(六)----异步文件通道 AsynchronousFileChannel
目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...
- [转]python file文件操作--内置对象open
python file文件操作--内置对象open 说明: 1. 函数功能打开一个文件,返回一个文件读写对象,然后可以对文件进行相应读写操作. 2. file参数表示的需要打开文件的相对路径(当前 ...
随机推荐
- Greedy- 621. Task Scheduler
Given a char array representing tasks CPU need to do. It contains capital letters A to Z where diffe ...
- ZZNU 1719(最长上升子序列+最长下降子序列)
先吐血一发,噗! 再吐血一次,啊啊啊啊! 好吧,做了那么多次最长上升子序列,看这题看了半天才发现还有最长下降子序列,呵呵哒! AC代码: #include<stdio.h>//老恶心#in ...
- nginx并发连接控制模块ngx_http_limit_conn_module
模块: ngx_http_limit_conn_module 作用: 根据定义的key限制并发连接数 配置示例: http { limit_conn_zone $binary_remote_addr ...
- python 初步认识Flask
1.简介 flask 问题一: 访问百度的流程? a. 客户端: 发送请求报文, 请求行, 请求头, 请求体 b.服务端: 解析请求的报文, 解析域名, 进行路由匹配分发找到对应的视图函数, 打包 ...
- 解决org.hibernate.QueryException illegal attempt to dereference collection 异常错误
今天做项目的时候,有两个实体:款式.品牌两者关系是多对多的关联关系,实现的功能是:通过选择款式,显示出该款式的所有品牌.HQL语句如下: 运行时出现这个异常错误:org.hibernate.Query ...
- Elasticsearch四种常见的相关度分数优化方法
**1.boost方式 ** 简单粗暴,最常用. 需求:查询出title和content中包含java spark的document 方式1: GET /forum/article/_search { ...
- C语言-apache mod(模块开发)-采用apxs开发实战(centos7.2 linux篇)
C语言-apache mod(模块开发)-采用apxs开发实战(centos7.2 linux篇) 名词解释:apxs apxs is a tool for building and installi ...
- 【kafka】kafka.admin.AdminOperationException: replication factor: 1 larger than available brokers: 0
https://blog.csdn.net/bigtree_3721/article/details/78442912 I am trying to create topics in Kafka by ...
- (转)权威支持: 选择正确的 WebSphere 诊断工具
权威支持: 选择正确的 WebSphere 诊断工具 原文:https://www.ibm.com/developerworks/cn/websphere/techjournal/0807_supau ...
- 2018春招-今日头条笔试题-第三题(python)
题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) 解题思路: 本题的做法最重要的应该是如何拼出‘1234567890’,对于输入表达试获得对应的结果利用python内置函数eval ...