我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python3之文件操作file

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python3之文件操作file

什么是文件:

  • 文件是用于数据存储的单位
  • 文件通常用来长期存储数据
  • 文件中的数据是以字节为单位进行存储的

文件的操作流程:

  1. 打开文件
  2. 读/写文件
  3. 关闭文件
    注意:任何操作系统,一个应用程序同时打开文件的数量有最大数限制
    文件一般流程:
f = open(filename, 'xxx')  # 打开文件
'''这里是读写操作'''
f.close()  # 关闭文件

mode模块字符的含义:

字符 含义
‘r’ 以只读方式打开(默认)
‘w’ 以只写方式打开,删除原有文件内容(如果文件不存在,则创建该文件并以只写方式打开)
‘x’ 创建一个新文件, 并以写模式打开这个文件,如果文件存在则会产生”FileExistsError”错误
‘a’ 以只写文件打开一个文件,如果有原文件则追加到文件末尾
‘b’ 用二进制模式打开
‘t’ 文本文件模式打开 (默认)
‘+’ 为更新内容打开一个磁盘文件 (可读可写)

- 默认是’rt’
- ‘w+b’ 可以实现二进制随机读写,当文件打开时,文件内容被清空
- ‘r+b’ 以二进制读和更新模式打开文件,打开文件时不会清空文件内容
- ‘r+’ 以文本模式读和更新模式打开文件,打开文件时不会清空文件内容

python在文件常用的方法:

方法 说明
F.close() 关闭文件(关闭后文件不能再读写会发生ValueError错误)
F.readline() 读取一行数据, 如果到达文件尾则返回空行
F.readlines(max_chars=-1) 返回每行字符串的列表,max_chars为最大字符(或字节)数
F.writelines(lines) 将字符串的列表或字符串的列表中的内容写入文件
二进制文件操作方法
F.read(size=-1) 从一个文件流中最多读取size个字符(文本文件)或字节(二进制文件),如果不给出参数,则默认读取文件中全部的内容并返回
F.write(text) 写一个字符串到文件流中,返回写入的字符数(文本文件)或字节数(二进制文件)
F.tell() 返回当前文件流读写指针的绝对位置(字节为单位)
F.seek(offset, whence=0) 改变数据流读写指针的位置,返回新的绝对位置
F.flush() 把写入文件对象的缓存内容写入到磁盘

文件的读操作:

read:读取文件的全部内容并原样输出

如,当前有文件myfile.txt:
这里写图片描述

f = open('myfile.txt')
res = f.read()
print(res)
f.close()

输出结果是:
这里写图片描述

f = open('myfile.txt')
res = f.read(3)
print(res)
f.close()

read可以设置读取字符数:
如:

f = open('myfile.txt')
res = f.read(3)
print(res)
f.close()

打印结果:

你好!

readline:读取文件的一行内容,以换行符 ’ \n ’ 分割

还是以上文件myfile.txt

f = open('myfile.txt')
res = f.readline()
print(res)
f.close()

输出结果:

/usr/bin/python3.5 /home/.../myfile.py
你好! 我在文件里

readlines:读取文件的全部内容,以换行符 ’ \n ’ 分割存在列表中

还是以上文件myfile.txt

f = open('myfile.txt')
res = f.readlines()
print(res)
f.close()

输出结果:

/usr/bin/python3.5 /home/.../myfile.py
['你好! 我在文件里\n', '你好! 我在文件里\n', '你好! 我在文件里\n', '你好! 我在文件里 gh\n', '\n', '你好! 我在文件里\n']

以readlines读取的文件内容是可迭代对象,可以使用for循环遍历,或直接示意索引下标获取想要的内容

文件的二进制读取:

现在改了myfile的内容如下:
你好!
aaa

现在以二进制的形式将这两行文字读取出来

f = open('myfile.txt', 'rb')  # 打开方式使用'rb'
res = f.read()
print(res)
f.close()

结果是:

b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x81\naaa\n'

文件的写操作

write (text) : 将字符串写入到文件当中

f = open('newfile.txt', 'w')  # w :有则打开并覆盖原内容,没有则新建文件
s = 'dfjhg\nhdgf'  # \n 会被解析成换行符
f.write(s)
f.close()

文件内容:

dfjhg
hdgf

writelines:将列表或列表的内容写入到文件(只能是字符串)


f = open('newfile.txt', 'w') 
L = ['sadf', 'sdf\n', '324\n']  # \n 被解析
f.writelines(L)
f.close()

文件内容:

sadfsdf
324

我们输一个不是字符串类型的试试:

L = ['sadf', 'sdf\n', '324\n', True]  # 把上述列表改成这个

结果出现错误:

Traceback (most recent call last):
  File "/home/.../file_write_text.py", line 3, in <module>
    f.writelines(L)
TypeError: write() argument must be str, not bool

错误提示大概是这样的:写的内容必须是字符串类型,而不是布尔类型

以二进制的形式写入文件

f = open('newfile.txt', 'wb')   # 使用 wb
L = [b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x81\naaa\n']  # \n 被解析
f.writelines(L)
f.close()

文件内容:

你好!
aaa

也可以使用write写。

文件的一些其他操作

flush:强制将缓存区的内容写入文件

有时候写着写着文件突然断电等,让写操作断开了,这时没有写完的就会放入缓冲区里,可以使用flush强制写入文件,具体写法如下:

f.write()
f.flush()  # 直接在写后边加这一句话即可

tell:返回当前文件流的读写位置(从0开始,以字节为单位)

try:
    f = open('mynote.txt', 'rt')

    b = f.read(3)
    print(b)
    print('当前的位置是:', f.tell())
    f.close()
except OSError:
    print('打开二进制文件失败')

打印结果:

bbb
当前的位置是: 3

seek:设置文件的读写位置

语法格式:f.seek(偏移量,whence=相对位置)
偏移量:大于0代表向文件尾方向移动,小于0代表向文件头移动
相对位置:
0—–>代表从文件头开始偏移
1—–>代表从文件当前位置开始偏移
2—–>代表从文件尾开始偏移

如有myfile.txt,内容是:abcdeABCDE1234567890

f = open('myfile.txt', 'rb')
b = f.read(3)  # 读取 3 个字符
print(b)

f.seek(5, 0)  # 0 从文件头开始移动,5 表示向尾移动,偏移量大小为 5,即开始从‘A’读
c = f.read(5)  # 读 5 个字符
print(c)

f.seek(2, 1)  # 1 表示从当前位置移动,2 表示向尾移动,偏移量大小为 2 ,即从 ‘3’ 开始读
d = f.read(5)  # 向尾读取 5 个字符
print(d)

f.seek(-15, 2)  # 2 表示从尾开始移动,-15 表示向文件头移动,偏移量大小为 15,即从'A'开始读
e = f.read(5)
print(e)

f.close()

执行结果:

b'abc'
b'ABCDE'
b'34567'
b'ABCDE'

本节完

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python3之文件操作file

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python3之文件操作file

什么是文件:文件是用于数据存储的单位文件通常用来长期存储数据文件中的数据是以字节为单位进行存储的文件的操作流程:打开文件读/写文件关闭文件 注意:任何操作系统,一个应用程序同时打开文件的数量有最大数限制 文件一般流程:f = open(fi
2023-01-31

Python3文件操作

打印到屏幕产生输出的最简单方法是使用print语句,可以通过用逗号分隔零个或多个表达式。这个函数传递表达式转换为一个字符串,如下结果写到标准输出 -#!/usr/bin/python3print ("Python is really a g
2023-01-31

python3--文件操作

python文件操作文件以什么编码存储,就以什么编码打开参数:1 文件路劲2 编码方式3 执行动作(打开方式):只读,只写,追加,读写,写读例子现有一个文档,制服护士空姐萝莉联系方式.txt,怎么用python打开?f=open(D:\制服
2023-01-30

Python3 文件操作

Python3 文件操作打开方式手动挡open+close自动挡with,自关闭常见操作w, r, a, bwritereadlinereadlinesseektellread相关模块fnmatchglobpickleStringIOshe
2023-01-31

python3-文件的操作

# Auther: Aaron Fan'''打开文件的模式有三种:r,只读模式(默认)。w,只写模式。【不可读;不存在则创建;存在则删除内容;因为会清空原有文件的内容,一定要慎用】a,追加模式。【可读;   不存在则创建;存在则只追加内容;
2023-01-31

python3基础:文件操作

相对路径和绝对路径相对路径:顾名思义就是相对于当前文件的路径。网页中一般表示路径使用这个方法。绝对路径:绝对路径就是主页上的文件或目录在硬盘上真正的路径。比如 c:/apache/cgi-bin 下的,那么 c:/apache/cgi-bi
2023-01-31

JavaIO流对文件File操作

这篇文章主要介绍了JavaIO流对文件File操作,java封装的一个操作文件及文件夹(目录)的对象。可以操作磁盘上的任何一个文件和文件夹
2022-12-08

Python3 文件(夹)基本操作

相关模块osos.pathshutilpathlib(New in version 3.4)基本操作判断文件(夹)是否存在。os.path.exists(pathname)# newpathlib.Path(pathname).exists
2023-01-31

python3 csv文件基本操作

csv(Comma-Separated Values),也叫逗号分割值,如果你安装了excel,默认会用excel打开csv文件。废话少说直接贴代码:import csv# 打开文件,用with打开可以不用去特意关闭file了,python
2023-01-31

python3文件操作相关模块

os模块:os.curdir'.'os.pardir'..'os.sep #路径分隔符,不同的操作系统看到的结果不一样'/'os.linesep #换行符,不同的操作系统看到的也不一样,windox'\n'os.getcwd() #获取
2023-01-31

Python之文件操作

Python可以对文件进行查看、创建等功能,可以对文件内容进行添加、修改、删除,且所使用到的函数在Python3.5.x为open,在Python2.7.x同时支持file和open,但是在3.5.x系列移除了file函数。Python文件
2023-01-31

python3.x操作csv文件的实战

说明python3.x集成了对csv文件的操作,直接引入包即可,但python2.x则需要单独安装。实战1、读取csv文件#引入包import csv#打开文件csvfile = open('xiaoqiang.csv',newline='
2023-01-31

Java文件操作类 File实现代码

1.概述  对于文件系统的访问是每个语言必须的,java提供了File类来完成对文件或者目录的创建,重命名,删除,文件列表的操作以及判读是否存在。2.对于文件/目录的操作  操作内容包括:    1:创建对象。    2:判断是否是目录/文
2023-05-31

day17-python之文件操作

1.内置函数 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # print(abs(-1)) 4 # print(abs(1)) 5 # 6 # print(all([1,
2023-01-31

python文件基础之(文件操作)

在之前学习了python的列表、元组、集合等知识,接下来将python的文件相关的知识做一总结和分析。一 open函数 在我们用word、excel、vim对文件操作时,肯定要先打开文件,同样在编程里面也是需要将文件打开,然后再对文件操作,
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录