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

python文件操作详解

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

python文件操作详解

文件操作是编程中必不可少的,配置文件,数据存储都是对文件操作;按文件操作与格式主要内容如下图:
python文件操作详解

文件基本操作为打开,读取,写入,关闭,我们按这个过程来详解讲解。

1.一个例子搞定打开,读取与关闭:

准备工作:

1>新建文件:E:\workdir\readme.txt(或者自己准备一个其他文本文件);
2>文件添加一行内容:this is test

直接上代码,有个基本认识:

#文件路径
path = r'E:\workdir\readme.txt'
#打开文件
f = open(path)
#读取文件
txt = f.read()
print(txt)
#关闭文件
f.close()

输出结果:this is test;
感觉文件操作太简单了。

那么问题来了:如果文件不存在如何创建文件?如何写文件?这种方式能够写入吗?
我们来看文件打开方式。

2 文件打开方式详解:

2.1 open方法详解:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

返回一个文件IO对象,如果文件不存在或者打开出错触发异常;
主要参数:

参数 说明
file 文件路径
mode 打开方式,默认只读方式
encoding 打开文件编码格式

其他参数暂时使用默认值。

我们再来看下文件打开方式:
打开方式 说明
'r' 只读方式 ,不能写入
'w' 只写方式打开,文件不存在创建文件,文件存在截断文件
'a' 只写方式打开,如果文件存在,再文件尾部开始写入
'+' 读写方式打开
'b' 二进制方式打开,例如图片; 'rb','wb','ab',上面操作类似

2.2 打开方式测试:

工作目录:'E:\workdir';

case1:文件不存在创建文件:

#该文件不存在
wfpath = r'E:\workdir\testw.txt'
f = open(wfpath, 'w')
#写入一行
f.write('python')
f.close()

查看E:\workdir\,创建文件testw.txt;

case2:文件存在只写方式打开:

准备工作:
1>在'E:\workdir'下创建文件:test1.txt;
2>写入一行文本:'abcd1234';

测试:

#文件存在
fpath = r'E:\workdir\test1.txt'
f = open(fpath, 'w')
f.close()

查看r'E:\workdir\test1.txt',内容被清空;

case3:只写方式打开,能否读取:

fpath = r'E:\workdir\test1.txt'
#文件只写方式打开
f = open(fpath, 'w')
#进行读取
f.read()
f.close()

结果:

UnsupportedOperation                      Traceback (most recent call last)
<ipython-input-13-30cd4bdc05f3> in <module>
      3 fpath = r'E:\workdir\test1.txt'
      4 f = open(fpath, 'w')
----> 5 f.read()
      6 f.close()

UnsupportedOperation: not readable

只写方式打开不能读取。

case4:只写方式打开,尾部开始写入:

使用'w'方式打开文件,文件会被裁剪,如何在尾部追加数据?使用'a'模式:

#先写入abc,关闭重新打开文件,在写入123
fpath = r'E:\workdir\testa.txt'
#只写方式打开
f = open(fpath, 'w')
f.write('abc')
f.close()
#追加方式打开,文件尾开始写入
fpath = r'E:\workdir\testa.txt'
f = open(fpath, 'a')
f.write('123')
f.close()

文件内容:abc123;

cast5:读写方式打开:

模式 说明
'r+' 读写方式打开,从文件头开始读写
'w+' 读写方式打开,文件被清空
'a+' 追加方式读写打开,从文件尾开始读写
#文件路径,文件内容:'this is test'
path = r'E:\workdir\readme.txt'
#打开文件
f = open(path, 'r+')
line = f.read()
print(line)
#写入文本
f.write('end')
#关闭文件,文件尾写入end
f.close()

结果:读取文件内容,并在文件尾插入end;
大家可以尝试测试另外两种读写模式。

3.文件读取

读取文件方法:

方法 说明
read(size=-1, /) 读取指定字节或者读取完成,默认读取完
readline(size=-1, /) 读取一行
readlines(hint=-1, /) 读取多行,默认读取完,返回每行组成列表

环境准备:readme.txt中添加四行:

1:语法
2:环境
3:逻辑处理
4:数据结构

case1:一次读取完

path = r'E:\workdir\readme.txt'
f = open(path)
lines = f.read()
print(lines)

case2:逐行读取

path = r'E:\workdir\readme.txt'
f = open(path)
while True:
    #读取完,读取内容为''
    line = f.readline()
    if line:
        print(line, end='')
    else:
        break

case3:按行一次读完

path = r'E:\workdir\readme.txt'
f = open(path)
lines = f.readlines()
print(lines)

lines为列表;

case4:使用for循环逐行读取:

如果文件过大,一次读取会占用大量内存,所以一般情况下,我们使用for遍历文件:

path = r'E:\workdir\readme.txt'
f = open(path)
for line in f:
    print(line, end='')

4.文件写入:

方法 说明
write(text, /) 写入字符串,返回写入字节数
writelines(lines, /) 写入多行

实际操作:

#‘\n’换行符
info = ['java\n','c++\n']
#只写方式打开文件
path = r'E:\workdir\testw.txt'
f = open(path,'w')
#写入一行
f.write('python'+'\n')
#写入多行
f.writelines(info)
f.close()

到这里文件基本操作我们就介绍完了,在专栏中我们再来看如何使用。

免责声明:

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

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

python文件操作详解

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

下载Word文档

猜你喜欢

python文件操作详解

文件操作是编程中必不可少的,配置文件,数据存储都是对文件操作;按文件操作与格式主要内容如下图:文件基本操作为打开,读取,写入,关闭,我们按这个过程来详解讲解。1.一个例子搞定打开,读取与关闭:准备工作:1>新建文件:E:\workdir\r
2023-01-31

详解Python中的文件操作

1.能调用方法的一定是对象,比如数值、字符串、列表、元组、字典,甚至文件也是对象,Python中一切皆为对象。str1 = 'hello'str2 = 'world'str3 = ' '.join([str1,str2])print(str
2022-06-04

Node.js文件操作详解

Node有一组数据流API,可以像处理网络流那样处理文件,用起来很方便,但是它只允许顺序处理文件,不能随机读写文件。因此,需要使用一些更底层的文件系统操作。 本章覆盖了文件处理的基础知识,包括如何打开文件,读取文件某一部分,写数据,以及关闭
2022-06-04

Python复制文件操作实例详解

本文实例讲述了Python复制文件操作用法。分享给大家供大家参考,具体如下: 这里用python实现了一个小型的自动发版本的工具。这个“自动发版本”有点虚, 只是简单地把debug 目录下的配置文件复制到指定目录,把Release下的生成文
2022-06-04

python文件操作及seek偏移详解

一、python文件操作中的编码       本次测试是基于python 2.7.12   OS:Ubuntu16.04  pycharm环境,以及win7下2.7.12;首先说下汉字在文件中占用的字节数,这个先看以下实验(win7)下 因
2023-01-31

Python高级文件操作之shutil库详解

前言 什么算是高层的文件操作呢? 普通的文件操作,我们一般只涉及创建文件,文件夹以及写入文件等等。假如我现在需要复制一个文件的内容到另一个文件之中,用pathlib等都只能先打开复制文件,然后进行将其读出来保存,然后再写入新的文件,这种普通
2022-06-02

python文件与目录操作实例详解

本文实例分析了python文件与目录操作的方法。分享给大家供大家参考,具体如下: 关于python文件操作的详细说明,大家可以参考前一篇《python文件操作相关知识点总结整理》 官方API:os-Miscellaneous operati
2022-06-04

Java压缩文件操作详解

这篇文章主要为大家详细介绍了如何利用Java语言进行压缩文件操作,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
2022-11-13

编程热搜

  • 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动态编译

目录