码迷,mamicode.com
首页 > 编程语言 > 详细

python-14-文件操作

时间:2019-12-08 10:31:05      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:readlines   创建   abc   截断   adl   组合   换行   info   print   

前言

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-文件操作

标签:readlines   创建   abc   截断   adl   组合   换行   info   print   

原文地址:https://www.cnblogs.com/gsxl/p/11966383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!