资讯专栏INFORMATION COLUMN

❤️Python【文件操作】保姆式教程❤️,计算机那么多文件,你绕不过这一关的!

forsigner / 3347人阅读

?前言

在Python写代码做项目时,我们往往需要对多个文件进行操作,在现在的源代码文件中怎么导入其他文件?怎么对其他文件进行操作?这都是经常要面临的问题,尤其是爬虫,爬到的数据放在哪里?用到的时候怎么调出来?

这就涉及到了Python的文件操作知识了,我们不可能永远都只会在一个源文件上做所有的操作,这也是必须掌握的一个知识板块。

与此同时,我的Python新手入门教程系列文章也已经快更新完了,欢迎大家的订阅:

Python新手入门教程系列文章专栏



?一、文件的定义和操作

计算机中的文件通常是指计算机硬盘为载体的、存储在计算机中的信息集合,主要的表现形式为视频、音频、图片以及文档四类,比如执行性文件.exe、文档文件.txt、网页文件.html等等。


?二、文件的基本操作

在现实中,我们对文件进行操作可以大致总结为“打开→操作(阅读、删除、修改等)→保存→关闭”,在Python当中依然是如此,在用Python开始文件操作之前,我们先学几个方法。

1.open(name,mode) ----打开文件

这是Python打开文件的方法,用于打开一个文件,返回的是一个文件对象。

name指的是文件名,一定要写全,何为写全?就是要写清楚 存储路径+文件名+后缀 。

为何要写这么全?因为就算是相同的存储路径下,文件名相同的文件也可能不止一个,只要后缀不一样,计算机是允许存在同名文件,所以不写全的话,计算机是不知道你指的是谁

mode是打开文件的模式,默认是r,也就是只读的方式。mode的方式有很多,比如读、写等等,后面我们会讲到。


2.write(“内容") ------写

顾名思义,就是向文件对象中写入内容。


3.read() -------读

向文件中写入内容,括号里面可以写数字也可以不写,不写的话默认是读取全部内容,写数字则表示读取X个字符,比如说read(6)则读取文件对象的6个字符。


4.close() ------关闭文件

关闭文件的方法,如果你在进行文件操作之后不进行关闭文件,则文件一直处于打开和操作的状态,会占用内存。


5.案例

在了解了这4个基本方法之后,我们来开始做1个小案例:新建一个项目,然后新建一个名为“文件”的Python文件用于写代码,然后我们用写的方式向1个叫“文件1”的.txt文件写入“hello world”,代码如下:

f = open("文件一.txt","w") #以写入的方式,打开文件f.write("hello world")  #向文件一中写入内容f.close()   #关闭文件

前面讲过 open() 这个方法返回的是一个文件对象,所以我们用f进行接收一下,这是没有运行前的界面:

运行后:

运行后生成了一个新的名为“文件一.txt”文件,打开它之后就能看到我们输入的内容。进行写操作时,如果文件不存在,则默认会创建一个。

同样的,我们也可以对这个文件进行读的操作:

f = open("文件一.txt","r") #以写入的方式,打开文件print(f.read()) #读文件f.close()   #关闭文件

运行结果:

hello world

这就是一个最基本的文件操作流程。

在这里要注意一点,open(name,mode)在一开始写的时候,mode就已经决定了你能做什么操作,也就是说如果你在开始写代码的时候写的是:

f = open("文件一.txt","r")	#只读的方式打开文件

那么后面你想进行write()的写操作是会报错的,因为mode里面声明了r只读模式,所以你没有写的权限,这一点要注意一下。


6.mode的其他操作模式

mode中有很多的操作模式,我们以表格的方式来看看:

模式描述
r以只读的形式打开文件,文件的指针在开头
r+读写,文件指针在开头
rb以二进制的形式,只读文件指针在开头
w只写,文件不存在,则创建新的,存在则覆盖,指针在开头
w+读写,文件不存在,则创建新的,存在则覆盖,指针在开头
wb只写,以二进制的形式
a追加模式,文件指针在结尾
a+读写,不存在则创建,存在直接追加
ab以二进制形式追加

指针在这里可以理解为光标,它在哪里,你的操作就从哪里开始。

举例:新建1个名为 “test” 的.txt文件,第一次向里面写入aaa,第二次向里面写入bbb。

f = open("test.txt", "a+")f.write("aaa")f.close()f = open("test.txt")  # 默认只读模式print(f.read())  # 打印内容f = open("test.txt", "a+")f.write("bbb")f.close()f = open("test.txt")  # 默认只读模式print(f.read())  # 再次打印内容

运行结果:

aaaaaabbb

?三、文件的方法与属性

1.file的对象属性

有三个常用的方法可用于查看文件对象的属性:

1. closed   	如果文件对象已关闭,返回True,否则返回False2. mode   	返回文件对象的访问模式3. name   	返回文件的名称

案例:对文件进行操作(随意),查看被操作的文件名、操作模式和是否关闭。

f = open("test.txt", "a+")f.write("aaa")f.close()print(f.closed) #查看是否关闭print(f.name)   #查看文件名字print(f.mode)   #查看操作模式

运行结果:

Truetest.txta+

2.file的对象方法

文件的方法有很多,前面我们已经讲过一点,比如read()和write(),但还有一些常用的方法需要掌握的,比如下面的:

1. close()		关闭文件---非常重要2. read([count])		读取文件中的内容		count:字节数量3. readlines()		读取所有内容,打包成列表4. readline()		读取一行数据,追加读取,读取过的不能再次读取5. seek(offset,[from])		修改指针的位置:从from位置移动了offset个字节		from:0则表示从起始位置,1则表示从当前位置开始,2则表示从末尾开始		oofset:要移动的字节数6. write()		向文件中写入内容

举例:向test.txt文件中写入aaabbbccc,将文件中的内容输出为列表。

f = open("test.txt", "a+")f.write("aaabbbccc")f.close()f = open("test.txt")print(f.readlines())f.close()

运行结果:

["aaabbbcccaaabbbccc"]

?四、os模块

os模块是一个用于访问操作系统的模块,在进行文件操作的时候常会用到它。模块在使用之前要进行导入。

import os

1.关于文件的功能

1.os.rename(原文件名,新的文件名)	——文件重命名2.os.remove(文件名)	——删除文件	如果不说明路径,则在源代码所在文件夹下寻找,寻找不到会报错。	若想删除指定文件夹下的文件,文件名则需要具体路径,例如 os.remove(r"D:/test_1/文件名"),r防止斜杠发生转义

举例:已有文件test1.txt,将其修改成test20.txt。

import osos.rename("test1.txt","test20.txt")

运行结果:


2.文件夹的功能

1.os.mkdir(文件夹名)	——创建文件夹2.os.rmdir(文件夹名)	——删除文件夹3.os.getced()	——获取当前目录4.os.chdir(目录)	——切换目录5.os.listdir(目录)	——获取当前文件夹下所有的文件或者文件夹,返回一个列表	os.listdir("aa") #获取aa文件夹下的所有文件或文件夹,返回一个列表

举例:在现有文件夹venv里面新建一个新建文件夹。

import osos.chdir(r"D:/文件/venv")  #切换到venv文件夹下,r是防止转义os.mkdir("新建文件夹")   #在venv文件夹下创建一个新建文件夹print(os.getcwd())  #输出当前目录位置

运行结果:


?结语

关于文件其实还有很多的方法,用到的时候可以去网上查查资料去深入了解,比如说os模块里面还有其他的方法,我们可以ctrl+鼠标左键进入模块内部查看,比如说不止os模块,还有os.path这个模块也是比较常用的文件操作模块。

那么今天的分享就先到这里,看完可以收藏起来多练练,文件操作也就不再困难了。

准备了很久,我的公众号终于是开始运作了,关于我的技术和经验文章都会优先在上面进行推送,目前还在不断完善中,欢迎大家的关注。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/120982.html

相关文章

  • 程序员【代码管理】工具介绍❤,热门语言更新么快,你绕不过一关

    上次讲了2个游戏源码 前端实战之js推箱子游戏(有界面、附源码、赞关藏) Python实战:五子棋小游戏,切身感受一下前端和桌面应用的区别,选择自己喜欢的 本来今天准备写一篇面向对象文章,但是想一想,讲面向对象之前还是先给大家介绍几款实用的工具,更加快速的理解,掌握知识点。 1.UML 统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可...

    array_huang 评论0 收藏0
  • Python异常捕获和处理❤姆式教学,代码异常报错也能那么和谐且个性!

    ?前言 代码出现异常而报错再正常不过了,但为什么要处理异常? 由于异常的存在,代码运行时会出现一大堆的红色字体提示,对于程序员还好,见红色报错见多了习惯了,但如果你开发出来的东西要给别人看,那么不懂代码的人就会一脸懵逼,对产品的印象都不太好了。 比如我们经常简单网页丢失的情况,其实是就是网页代码执行时发生了异常,但有的网页还是很个性的,提示的信息可能是比较人性化的,比如CSDN你收藏的文章被后台删...

    awesome23 评论0 收藏0
  • Python面向对象姆式教学❤,新手速成精英之路!

    前言 最近,我在群里答疑的时候,经常碰到,小伙伴,再变量,缩进,参数,方面使用错误,导致程序运行不来。 今天,打算自己写一篇。 Python 变量作用域,和生命周期。 彻底弄懂变量该怎么使用。 知识点 变量的使用,有作用域区别,也有生命周期的区别。 1.变量作用域 局部变量 python能够影响变量作用域的代码段是def、class、lamda。 def scopeTest(): local...

    Cc_2011 评论0 收藏0
  • 保姆教程HTML两万字笔记大总结【建议收藏】(上篇)

    摘要:标签不区分大小写,但推荐小写。标签可以嵌套,但不能交叉嵌套。标签也称为元素。比如行内标签亦可成行内元素。 ❤️HTML必备知识详解❤️ 第一部分:HTML框架简介...

    paulli3 评论0 收藏0
  • 程序员条路,选择深耕技术,还是全面学习比较好?

    摘要:前言在开发技术和应用市场完全成熟的今天,有人希望深耕技术打造出自己的一片天地,也有人想广泛学习在程序员市场中游刃有余。而这本书上千的引用论文,给我指明了一条系统学习理论的明路。 ...

    kun_jian 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<