前言

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-文件操作的更多相关文章

  1. Python 常见文件操作的函数示例(转)

    转自:http://www.cnblogs.com/txw1958/archive/2012/03/08/2385540.html # -*-coding:utf8 -*- ''''' Python常 ...

  2. Python常见文件操作的函数示例

    # -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname() ...

  3. python的文件操作及简单的用例

    一.python的文件操作介绍 1.文件操作函数介绍 open() 打开一个文件 语法:open(file, mode='r', buffering=-1, encoding=None, errors ...

  4. [转]python file文件操作--内置对象open

    python file文件操作--内置对象open   说明: 1. 函数功能打开一个文件,返回一个文件读写对象,然后可以对文件进行相应读写操作. 2. file参数表示的需要打开文件的相对路径(当前 ...

  5. 员工管理系统+字符编码+Python代码文件操作

    员工管理系统+字符编码+Python代码文件操作 1.员工管理系统 1.1  debug 代码调试 1.先使用鼠标左键在需要调试的代码左边点击一下(会出现一个红点)2.之后右键点击debug运行代码 ...

  6. Python :open文件操作,配合read()使用!

    python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...

  7. 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容

     孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...

  8. 孤荷凌寒自学python第三十三天python的文件操作初识

     孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...

  9. python中文件操作的六种模式及对文件某一行进行修改的方法

    一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...

  10. python中文件操作的其他方法

    前面介绍过Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open('poems','r', ...

随机推荐

  1. Springboot中使用自定义参数注解获取 token 中用户数据

    使用自定义参数注解获取 token 中User数据 使用背景 在springboot项目开发中需要从token中获取用户信息时通常的方式要经历几个步骤 拦截器中截获token TokenUtil工具类 ...

  2. 爬虫之selenium爬取京东商品信息

    import json import time from selenium import webdriver """ 发送请求 1.1生成driver对象 2.1窗口最大 ...

  3. HTML创建图像映射,布局,表单

    来源: 实验楼 创建图像映射 在这之前我们动手试验过将图片作为链接来使用,触发链接的方式就是点击图片的任何地方都可以链接到跳转地址,有时我们需要实现,点击图片的不同地方跳转到不同的地方.意思就是,一张 ...

  4. 深入理解计算机系统 第八章 异常控制流 part1

    本章主旨 第八章的目的是阐述清楚应用程序是如何与操作系统交互的(之前章节的学习是阐述应用程序是如何与硬件交互的) 异常控制流 异常控制流,即 ECF(exceptional contril flow) ...

  5. C++中对C的扩展学习新增语法——const

     Const Const在C语言和C++语言中连接属性不一样,C语言默认是外部连接,如果需要内部连接,需要显示写上static.而在C++中默认是内部连接,如果希望其编程外部变量,需要显示写上exte ...

  6. Laravel上传文件(单文件,多文件)

    为了方便,先修改一个配置文件,再laravel框架中config配置中找到  filesystems.php 文件 修改代码如下 'local' => [ 'driver' => 'loc ...

  7. 基于Windows下永久破解jetbrains公司的系列产品(Idea, pycharm,clion,phpstorm)

    基于Windows下永久破解jetbrains公司的系列产品(Idea, pycharm,clion,phpstorm): PS : 有能力的建议购买正版,好吧. PS:均针对其对应的2018.3.1 ...

  8. python:类4——魔法方法(定制序列、迭代)、生成器、推导式

    一.定制序列(容器类型) http://bbs.fishc.com/forum.php?mod=viewthread&tid=48793&extra=page%3D1%26filter ...

  9. HTML的footer置于页面最底部

    vue项目中,使用element-ui的布局,仍然出现footer不固定页面底部的情况,网上找到的一个管用的 方法是:footer高度固定+绝对定位 <html> <head> ...

  10. goland_beego框架学习--api实现

    goland_beego框架学习--api实现 完成一项api实现的流程 (1)beego框架的router层里面注册路由 正则路由 为了用户更加方便的路由设置,beego 参考了 sinatra 的 ...