【学习笔记】--- 老男孩学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参数表示的需要打开文件的相对路径(当前 ...
随机推荐
- TOMCAT开启APR模式
Tomcat支持三种接收请求的处理方式:BIO.NIO.ARP. BIO模式:阻塞式I/O操作,表示Tomcat使用传统Java I/O操作.默认情况下,Tomcat7以下版本使用BIO模式运行,由于 ...
- ES6字符串相关扩展
变量的解构赋值 // 数组的解构赋值 let [a,b,c] = [1,2,3]; //1,2,3 let [a,b,c] = [,123,]; //undefined 123 undefined l ...
- ReentrantLock获取到非公平锁的源码
/** * Performs lock. Try immediate barge, backing up to normal * acquire on failure. */ final void l ...
- Cookie、Session和Cache
一.Cookie Cookie是保存客户端的一组数据,主要用来保存用户的个人信息,主要存放浏览器请求服务器时的请求信息,这些信息是非敏感信息.主要用于当用户访问您的系统时,应用程序可以检索以前存储的信 ...
- 2. Linear Model
1. 基本形式 给定由$d$个属性描述的示例 $\textbf{x} =(x_1;x_2;...,x_n)$,其中$x_i$是$x$在第$i$个属性上的取值,线性模型(linear model)试图学 ...
- ubuntu 16.04 docker下安装klee环境
手动构建docker映象: 从github上获取klee源码 git clone https://github.com/klee/klee.git cd klee 使用存储库根目录中dockerfil ...
- html基础+常用标签
概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器 ...
- NOIP上机测试注意事项
由于近期模拟题原地**次数较多,故写一篇警示文 1,头文件 1.1正式比赛中,反正我不敢用bits/stdc++.h. 1.2正式比赛中,建议打出以下十个库 #include<iostream& ...
- (转)Python3.5——装饰器及应用详解
原文:https://blog.csdn.net/loveliuzz/article/details/77853346 Python3.5——装饰器及应用详解(下)----https://blog.c ...
- Sequel-Model
Sequel::Model Mass Assignment 大多数的Model方法接受一个包含一系列key和value的哈希作为参数,这些方法包括:Model.new, Model.create, M ...