python文件操作的基础详细讲解(write、read、readlines、readline)

 更新时间:2022年04月12日 08:21:00   作者:ChenBinBini  
使用python来读写文件是非常简单的操作,下面这篇文章主要给大家介绍了关于python文件操作的基础详细资料,包括write、read、readlines、readline等相关操作,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

前言

python 文件操作、文件读写(write、read、readlines、readline)、文件的相关操作,简单易懂

1 文件操作

文件就是把一些数据存起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力。

1.1 文件打开与关闭

1.1.1 打开文件

在python中,使用open函数,可以打开已经存在的文件,或者创建一个新文件,open(文件名,访问模式)

示例如下:

f = open(‘test.txt','w')

新建前

没有找到‘test.txt’文件,所以新建了‘test.txt’文件

1.1.2 关闭文件

close()

示例如下:

#新建一个文件,文件名为:test.txt
f = open(“text.txt”,”w”)
f.colse()#关闭这个文件

1.2 访问模式及说明

访问模式说明
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
w+打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+打开一个文件用于读写,如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果改文件不存在,创建新文件用于读写。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头
wb+以二进制格式打开一个文件用于读写。如果改文件已存在则会覆盖。如果改文件不存在,创建新文件。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果改文件不存在,创建新文件用于读写。

2 文件读写

2.1 写数据(write)

使用write()可以完后向文件写入数据

示例如下:

#写
f = open("test.txt","w") #打开文件,w模式(写模式),文件不存在就新建
f.write("hello world,I am here!")   #将字符串写入文件中
f.close()   #关闭文件

写入的内容

2.2 读数据(read)

使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中的所有数据

示例如下:

#读:read方法,读取指定的字符,开始时定位在文件头部,每执行一次向后移动指定字符数
f = open("test.txt","r")
content = f.read(5) #一次读五个字符
print(content)
print('-'*30)
content = f.read()
print(content)
f.close()

运行结果下图:

结果

2.3 读数据(readlines)

就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性的读取,并且返回的是一个列表,其中每一行的数据为一个元素

test.txt文件内容

示例如下:

f = open("test.txt","r")
content = f.readlines() # 一次性读取全部文件为列表,每行一个字符串
print(content) #['hello world,I am here!\n', 'hello world,I am here!\n', 'hello world,I am here!\n', 'hello world,I am here!\n',

i = 1
for temp in content:
    print("%d:%s"%(i,temp))
    i += 1
f.close()

运行结果下图:

运行结果

2.3 读数据(readline)

readline一次读取一行

示例如下:

f = open("test.txt","r")
content = f.readline() #1:hello world,I am here!--1
print("1:%s"%content)

content = f.readline() #2:hello world,I am here!--2
print("2:%s"%content)
f.close()

运行结果下图:

3 文件的相关操作

有些时候,需要对文件进行重命名、删除一些操作,python的os模块中都有这些功能

3.1 文件重命名

os模块中的rename()可以完成对文件的重命名操作rename(需要修改的文件名,新的文件名)

import os
os.rename(“毕业论文.txt”,”毕业论文-最终版.txt”)

3.2 删除文件

os中的remove()可以完成对文件的删除操作

remove(待删除的文件名)

import os 
os.remove(“毕业论文.txt”)

3.3 创建文件夹

import os
os.mkdir(“张三”)

3.4 获取当前目录

import os
os.getcwd()

3.5 改变默认目录

import os
os.chdir(“../”)

补充:文件综合操作实例

将文件夹下所有图片名称加上'_fc'

python代码:

# -*- coding:utf-8 -*-
import re
import os
import time
#str.split(string)分割字符串
#'连接符'.join(list) 将列表组成字符串
def change_name(path):
    global i
    if not os.path.isdir(path) and not os.path.isfile(path):
        return False
    if os.path.isfile(path):
        file_path = os.path.split(path) #分割出目录与文件
        lists = file_path[1].split('.') #分割出文件与文件扩展名
        file_ext = lists[-1] #取出后缀名(列表切片操作)
        img_ext = ['bmp','jpeg','gif','psd','png','jpg']
        if file_ext in img_ext:
            os.rename(path,file_path[0]+'/'+lists[0]+'_fc.'+file_ext)
            i+=1 #注意这里的i是一个陷阱
        #或者
        #img_ext = 'bmp|jpeg|gif|psd|png|jpg'
        #if file_ext in img_ext:
        #    print('ok---'+file_ext)
    elif os.path.isdir(path):
        for x in os.listdir(path):
            change_name(os.path.join(path,x)) #os.path.join()在路径处理上很有用

img_dir = 'D:\\xx\\xx\\images'
img_dir = img_dir.replace('\\','/')
start = time.time()
i = 0
change_name(img_dir)
c = time.time() - start
print('程序运行耗时:%0.2f'%(c))
print('总共处理了 %s 张图片'%(i))

总结

到此这篇关于python文件操作基础的文章就介绍到这了,更多相关python文件操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 删除目录下相同文件的python代码(逐级优化)

    删除目录下相同文件的python代码(逐级优化)

    让我们来分析一下这个问题:首先,文件个数非常多,手工查找是不现实的,再说,单凭我们肉眼,在几千张图片里面找到完全相同的难度也是很大的
    2012-05-05
  • PyQt5执行耗时操作导致界面卡死或未响应的原因及解决办法

    PyQt5执行耗时操作导致界面卡死或未响应的原因及解决办法

    这篇文章主要给大家介绍了关于PyQt5执行耗时操作导致界面卡死或未响应的原因及解决办法,由于耗时的操作会独占系统cpu资源,让界面卡死在那里,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • Python 40行代码实现人脸识别功能

    Python 40行代码实现人脸识别功能

    很多人都认为人脸识别是一项非常难以实现的工作,看到名字就害怕,然后心怀忐忑到网上一搜,看到网上N页的教程立马就放弃了。其实如果你不是非要深究其中的原理,只是要实现这一工作的话,人脸识别也没那么难。今天我们就来看看如何在40行代码以内简单地实现人脸识别。
    2017-04-04
  • pytorch梯度剪裁方式

    pytorch梯度剪裁方式

    今天小编就为大家分享一篇pytorch梯度剪裁方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 如何基于Python批量下载音乐

    如何基于Python批量下载音乐

    这篇文章主要介绍了如何基于Python批量下载音乐,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Python实现自动签到脚本功能

    Python实现自动签到脚本功能

    这篇文章主要介绍了Python实现自动签到脚本,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • python 巡检脚本的项目实践

    python 巡检脚本的项目实践

    本文主要介绍了python 巡检脚本的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • python同时遍历数组的索引和值的实例

    python同时遍历数组的索引和值的实例

    今天小编就为大家分享一篇python同时遍历数组的索引和值的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Python装饰器实现方法及应用场景详解

    Python装饰器实现方法及应用场景详解

    这篇文章主要介绍了Python装饰器实现方法及应用场景详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • python设计微型小说网站(基于Django+Bootstrap框架)

    python设计微型小说网站(基于Django+Bootstrap框架)

    这篇文章主要介绍了python设计微型小说网站(基于Django+Bootstrap框架),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07

最新评论