python-14-文件操作
前言
python中对文件的读写也是非常方便的,本章节将讲解读、写、读写等常用操作。下面讲师必要的参数:
1、文件路径:必须得知道文件的路径,不然怎样进行读写?
2、编码方式:utf-8,gbk,gb2312....(python3的str是unicode编码存储的,我们一般常用utf-8存在,编码不了解的话容易出现乱码)
3、操作模式:只读,只写,追加,写读,读写。
“r”打开读取(默认)
“w”打开进行写入,首先截断文件
“x”创建一个新文件并打开它进行写入
“a”打开写入,如果文件存在,则追加到文件的末尾
“b”二进制模式
“t”文本模式(默认)
“+”打开磁盘文件进行更新(读写)
“U”通用换行模式(已弃用)
一、只读
1、r:str方式读,编码:UTF-8,bytes --》 str(将我们的文件转为python3中的str)
# 1、r:str方式读,编码:UTF-8
# bytes --》 str
f = open('1.txt', 'r', encoding="UTF-8")
c = f.read()
print(c)
f.close()

2、rb:bytes方式读,非文字的文件。可以看到【我是一个文件哈】是7个文字,一个文字3个字节,所以我们转换为bytes有21个,每个 \ 隔开。
# 2、rb:bytes方式读,非文字的文件
f = open('1.txt', 'rb')
c = f.read()
print(c)
f.close()

二、只写
1、w:写入,没有此文件则是新创建,有此文件会清空源文件再写。
# 1、w:写入,没有此文件是创建,有此文件会清空源文件再写
f = open('log', 'w', encoding="utf-8")
f.write('abc小龙abc')
f.close()

2、wb:二进制写入,凡是有wb都需要加.encode("utf-8")
# 2、wb:写入,没有此文件是创建,有此文件会清空源文件再写
f = open('log1', 'wb')
f.write('abc小龙abc'.encode("utf-8")) # 以utf-8编码格式,写入东西
f.close()

3、a:追加写入
# 3、a:追加写入
f = open('log1', 'a', encoding="utf-8")
f.write('abc小龙abc')
f.close()

三、读写
1、r+ 先读再写,推荐该 r+ 方式。
# 1、先读再写,写了不能再读
f = open('log', 'r+', encoding="utf-8")
f.seek(0)
print(f.read())
f.write('小哥哥谈恋爱吗?我偷老公的钱养你')
f.close()

2、先写再读,推荐该 r+ 方式。
# 2、先写再读,不推荐
f = open('log', 'r+', encoding="utf-8")
f.write('小哥哥谈恋爱吗?我偷老公的钱养你')
print(f.read())
f.close()

当然模式可以组合,如r+b,a+b等。
四、常用操作
1、seek 指定光标
f = open("log", "r+", encoding="utf-8")
a = f.read() # 默认读全部
print(a)
f.seek(6) # 按照字节指定光标开始读位置
c = f.read(6) # 指定读 N 个字符
print(c)
f.close()

2、追加 小龙女,调节光标获取后面的9个字节
# 追加 小龙女,调节光标获取后面的9个字节
f = open("log", "a+", encoding="utf-8")
f.write('小龙女')
count = f.tell() # 查看光标的位置
f.seek(count-9) # 按照字节指定光标开始读位置
c = f.read()
print(c)
f.close()

3、readline、readlines的使用
f = open("log", "a+", encoding="utf-8")
f.seek(0)
# c = f.readline() # 一行一行读
d = f.readlines() # 每行当成一个列表,添加到list中
# print(c)
print(d)
f.close()

4、推荐:with, 不用 close 关闭,也可读多个
# 推荐:with 不用 close 关闭,可读多个
a = open('log', "r+", encoding="utf-8")
b = open('log', "r+", encoding="utf-8")
with a as f, b as f1:
print(f.read())
print(f1.read())

欢迎来QQ交流群:482713805
python-14-文件操作的更多相关文章
- Python 常见文件操作的函数示例(转)
转自:http://www.cnblogs.com/txw1958/archive/2012/03/08/2385540.html # -*-coding:utf8 -*- ''''' Python常 ...
- Python常见文件操作的函数示例
# -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname() ...
- python的文件操作及简单的用例
一.python的文件操作介绍 1.文件操作函数介绍 open() 打开一个文件 语法:open(file, mode='r', buffering=-1, encoding=None, errors ...
- [转]python file文件操作--内置对象open
python file文件操作--内置对象open 说明: 1. 函数功能打开一个文件,返回一个文件读写对象,然后可以对文件进行相应读写操作. 2. file参数表示的需要打开文件的相对路径(当前 ...
- 员工管理系统+字符编码+Python代码文件操作
员工管理系统+字符编码+Python代码文件操作 1.员工管理系统 1.1 debug 代码调试 1.先使用鼠标左键在需要调试的代码左边点击一下(会出现一个红点)2.之后右键点击debug运行代码 ...
- Python :open文件操作,配合read()使用!
python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...
- 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容
孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...
- 孤荷凌寒自学python第三十三天python的文件操作初识
孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...
- python中文件操作的六种模式及对文件某一行进行修改的方法
一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...
- python中文件操作的其他方法
前面介绍过Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open('poems','r', ...
随机推荐
- Springboot中使用自定义参数注解获取 token 中用户数据
使用自定义参数注解获取 token 中User数据 使用背景 在springboot项目开发中需要从token中获取用户信息时通常的方式要经历几个步骤 拦截器中截获token TokenUtil工具类 ...
- 爬虫之selenium爬取京东商品信息
import json import time from selenium import webdriver """ 发送请求 1.1生成driver对象 2.1窗口最大 ...
- HTML创建图像映射,布局,表单
来源: 实验楼 创建图像映射 在这之前我们动手试验过将图片作为链接来使用,触发链接的方式就是点击图片的任何地方都可以链接到跳转地址,有时我们需要实现,点击图片的不同地方跳转到不同的地方.意思就是,一张 ...
- 深入理解计算机系统 第八章 异常控制流 part1
本章主旨 第八章的目的是阐述清楚应用程序是如何与操作系统交互的(之前章节的学习是阐述应用程序是如何与硬件交互的) 异常控制流 异常控制流,即 ECF(exceptional contril flow) ...
- C++中对C的扩展学习新增语法——const
Const Const在C语言和C++语言中连接属性不一样,C语言默认是外部连接,如果需要内部连接,需要显示写上static.而在C++中默认是内部连接,如果希望其编程外部变量,需要显示写上exte ...
- Laravel上传文件(单文件,多文件)
为了方便,先修改一个配置文件,再laravel框架中config配置中找到 filesystems.php 文件 修改代码如下 'local' => [ 'driver' => 'loc ...
- 基于Windows下永久破解jetbrains公司的系列产品(Idea, pycharm,clion,phpstorm)
基于Windows下永久破解jetbrains公司的系列产品(Idea, pycharm,clion,phpstorm): PS : 有能力的建议购买正版,好吧. PS:均针对其对应的2018.3.1 ...
- python:类4——魔法方法(定制序列、迭代)、生成器、推导式
一.定制序列(容器类型) http://bbs.fishc.com/forum.php?mod=viewthread&tid=48793&extra=page%3D1%26filter ...
- HTML的footer置于页面最底部
vue项目中,使用element-ui的布局,仍然出现footer不固定页面底部的情况,网上找到的一个管用的 方法是:footer高度固定+绝对定位 <html> <head> ...
- goland_beego框架学习--api实现
goland_beego框架学习--api实现 完成一项api实现的流程 (1)beego框架的router层里面注册路由 正则路由 为了用户更加方便的路由设置,beego 参考了 sinatra 的 ...