iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python常见文件操作的示例详解
  • 194
分享到

Python常见文件操作的示例详解

2024-04-02 19:04:59 194人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录从文件中读取数据为什么要提供文件路径逐行读取创建一个包含文件各行内容的列表使用文件中的内容包含千位以上的大型文件圆周率中包含你的生日吗写入文件附加到文件从文件中读取数据 1:读取

从文件中读取数据

1:读取整个文件

首先创建一个文件,它包含一些文本信息,注意:如果该文件为.py文件,则再进行操作的时候可以不写路径,如果不是.py文件,则必须标明路径。

现在我们创建一个python文件,名为text.py,给他写入如下文本信息:

下面的程序打开并读取这个文件,再将其内容显示到屏幕上:

with open('text.py') as PythonProject2:#open(要打开的文件名称)
#open函数返回一个表示文件test.py的对象,python将该对象赋给pythonProject2
    cc=pythonProject2.read()
print(cc)

python在当前执行的文件所在目录中查找指定的文件

关键字 with 在不再需要访问文件后将其关闭在这个程序中,注意到我们调用了 open(),但没有调用 close()。也可以调用 open()和 close()来打开和关闭文件,但这样做时,如果程序存在 bug 导致方法 close()未执行,文件将不会关闭。这看似微不足道,但未妥善关闭文件可能导致数据丢失或受损。如果在程序中过早调用 close(),你会发现需要使用文件时它已关闭(无法访问),这会导致更多的错误。并非在任何情况下都能轻松确定关闭文件的恰当时机,但通过使用前面所示的结构(with open(需要打开的文件名称) as 赋给另一个对象),可让 Python 去确定:你只管打开文件,并在需要时使用它,Python 自会在合适的时候自动将其关闭。

细心的同学已经发现了,我们上文所输出的内容多了一行空格,原因是:read()到达文件末尾的时候返回一个空的字符串,而将这个空字符串显示出来就是一个空格,而想要删除空行只需要使用我们之前学习过的rstrip()函数。

为什么要提供文件路径

将类似于 .txt 的简单文件名传递给函数 open()时,Python 将在当前执行的文件(即物程序文件)所在的目录中查找。

根据你组织文件的方式,有时可能要打开不在程序文件所属目录中的文件。例如,你可能将程序文件存储在了文件夹 python_work中,而该文件夹中有一个名为 text_files 的文件夹用于存储程序文件操作的文本文件。虽然文件夹 text_files 包含在文件夹python_work 中,但仅向 open()传递位于前者中的文件名称也不可行,因为 Python 只在文件夹 python_work中查找,而不会在其子文件夹 text_files 中查找。要让 Python 打开不与程序文件位于同一个目录中的文件,需要提供文件路径,让Python 到系统的特定位置去查找。

否则会出现如下图所示:python会告诉你找不到该文件

那么该怎么解决这个问题呢?

这里我们就需要用绝对路径,例如,我们现在建立一个.txt在桌面。

下面我们使用相对路径(仅提供文件名的方式),去打开:

with open(r"新建文本文档.txt",'r',encoding='utf-8') as f:
    ff=f.read()
print(ff)

我们发现文件根本打不开。

现在我们使用绝对路径(提供具体的位置信息),去打开:

with open(r"C:\Users\Lenovo\Desktop\新建文本文档.txt",'r',encoding='utf-8') as f:
    ff=f.read()
print(ff)

文件内容被很好的显示出来了。

注:encoding='utf-8的作用是为了避免出现乱码。

上图所示程序,不加encoding='utf-8,就会出现以下情况;

注:显示文件路径时,windows系统使用反斜杠(\),而不是斜杠(/),但在代码中仍可以使用斜杠。

如果在文件路径中直接使用反斜杠,将引发错误,因为反斜杠用于对字符串中的字符进行转义。

举例:

C:\path\to\file.txt

其中的\t会被解读为制表符,如果一定要使用反斜杠,可对相对路径中的每个反斜杠都进行转义:

C:\\path\\to\\file.txt

逐行读取

读取文件时,常常需要检查其中的每一行:可能要在文件中查找特定的信息,或者要以某种方式修改文件中的文本。

直接使用for循环的方法:

在该目录下的文件读取:

for line in open("123.txt",encoding='utf-8'):
    print(line)

计算机其他位置中的:

for line in open(r"C:\Users\Lenovo\Desktop\新建文本文档.txt",encoding='utf-8'):
    print(line)

使用while循环

在该目录下的文件读取:

f=open("123.txt",encoding='utf-8')
line=f.readline()
while line:
    print(line)
    line=f.readline()
f.close()

计算机其他位置中的:

f=open(r"C:\Users\Lenovo\Desktop\新建文本文档.txt",encoding='utf-8')
line=f.readline()
while line:
    print(line)
    line=f.readline()
f.close()

使用with…as结构

在该目录下的文件读取:

with open("123.txt",encoding='utf-8') as f:
    for line  in f:
        print(line)

计算机其他位置中的:

with open(r"C:\Users\Lenovo\Desktop\新建文本文档.txt",encoding='utf-8') as f:
    for line in f:
        print(line)

运行上面两个文件的结果:

hi,python

早上好

晚上好

你好

窗前明月光,疑似地上霜

举头望明月,低头思归乡

鹅鹅鹅,曲项向天歌

白毛浮绿水,红掌拨清波

我们不难发现,空白行变得更多了,原因是:在这个文件中,每行末尾都有一个看不见的换行符,而print函数在调用的时候也会产生一个换行符,因此每行末尾都会有两个换行符,一个来自文件,一个来自print函数的调用,要想消除这些换行符,可在调用print函数的时候,使用rstrip():

print(line.rstrip())

处理之后的结果:

窗前明月光,疑似地上霜
举头望明月,低头思归乡
鹅鹅鹅,曲项向天歌
白毛浮绿水,红掌拨清波

hi,python
早上好
晚上好
你好

创建一个包含文件各行内容的列表

使用关键字 with 时,open()返回的文件对象只在 with 代码块内可用。如果要在 with 代码块外访问文件的内容,可在 with 代码块内将文件的各行存储在一个列表中,并在 with 代码块外使用该列表:可以立即处理文件的各个部分,也可以推迟到程序后面再处理。

with open("123.txt",encoding='utf-8') as f:
    lines=f.readlines()#使用readlines()从文件中读取每一行,并将其存储在一个列表中
    //这样处理后,在with代码块外仍然可以使用变量lines
for line  in lines:
    print(line)

输出结果:

hi,python

早上好

晚上好

你好

使用文件中的内容

举例:

with open("123.txt",encoding='utf-8') as f:
    lines=f.readlines()
pi=str()#创建空的字符串用于存储文本内容
for line  in lines:
    pi+=line.rstrip()#将每行末尾的空行去掉
print(pi)
print(len(pi))#输出字符串的长度

1234562345671038417968539
25

注:读取文本文件的时候,python会自动将所有的文本文件解读成字符串,如果文本文件中的内容为数值,并且要作为数值使用,就必须使用int()函数,或者float()函数将其进行转化。

举例:

如果上述例子中的123.txt中的内容要作为数值使用,则程序应进行修改:

如下:

with open("123.txt",encoding='utf-8') as f:
    lines=f.readlines()
pi=int()#进行强制转化
#pi=float()
for line  in lines:
    pi+=int(line)
    #pi+=float(line)
print(pi)

1038418326562

包含千位以上的大型文件

前面我们所分析的都是包含几行的文本文件,现在假设我们有一个文件,其中包含精确到小数点后千位而不是30位的圆周率,也可创建一个字符串将他包含到里面,有的小伙伴想到这个问题会觉得很棘手,程序该怎么写呢?

其实,我们前面编撰好的程序就可以直接进行传递使用:

with open("123.txt",encoding='utf-8') as f:
    lines=f.readlines()
pi=str()#创建空的字符串用于存储文本内容
for line  in lines:
    pi+=line.rstrip()#将每行末尾的空行去掉
print(f"{pi[:52]}.....")#为了避免显示的内容不停的滚动,只打印前52位
print(len(pi))#输出字符串的长度

1234562345671038417968539168519635885951538287826636.....
1596

同理,对于万位,百万位等等更大的文件,我们的程序仍然可以使用。

圆周率中包含你的生日吗

with open("123.txt",encoding='utf-8') as f:
    lines=f.readlines()
pi=str()#创建空的字符串用于存储文本内容
for line  in lines:
    pi+=line.rstrip()#将每行末尾的空行去掉
you_birthday=str(input("请输入你的生日"))
if you_birthday in pi:
    print("yes")
else:
    print("NO")

请输入你的生日0904
yes

写入文件

1:写入空文件:

要将文本写入文件,你在调用open()时,需要提供另一个参数,告诉python,你要写入打开的文件.

举例:

with open("123.txt",'w',encoding='utf-8') as f:
    f.write("晚上好")

打开该文件:

#open(名称,操作模式 )#操作模式包括:w:写,r:读取 ,a:附加,r+:读写`

如果省略了操作模式,python自动以只读的方式打开,如果要写入的文件不存在,python的open()函数将自动创建它,以写入的模式(w)打开,如果该文件已存在,则python会自动清空之前的内容。

python只能将字符串写入文本文件文件,要是想将数据存储到文本文件中,需要先用str()将其转化为字符串格式。

写入多行:

函数write()不会在写入的文本末尾添加换行符,因此如果写入多行时没有指定换行符,文件看起来可能不是我们想要的那样:

举例:

with open("123.txt",'w',encoding='utf-8') as f:
    f.write("早上好---Good morning")
    f.write("中午好---good afternoon")
    f.write("晚上好---good evening")

如下图所示,所有的内容都被显示在一行:

怎么解决这种问题呢?需要在方法调用write()中包含换行符:

with open("123.txt",'w',encoding='utf-8') as f:
    f.write("早上好---good morning\n")
    f.write("中午好---good afternoon\n")
    f.write("晚上好---good evening\n")

现在文本内容呈现在不同行中:

像显示到终端一样,还可以使用空格,制表符和空行来设置这些输出的格式。

附加到文件

如果要给文件添加内容而不是覆盖原来的内容,可以以附加模式打开文件,以附加模式打开文件时,python不会在返回文件对象前清空文件的内容,而是将写入文件的行添加到文件末尾,如果指定的文件不存在,python会为你创建一个空文件。

举例:

with open("123.txt",'a',encoding='utf-8') as f:#以附加模式打开
    f.write("hello,world")#将hello,world写入文件

原内容并没有被清空。

到此这篇关于Python常见文件操作的示例详解的文章就介绍到这了,更多相关Python文件操作内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python常见文件操作的示例详解

本文链接: https://www.lsjlt.com/news/119234.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Python常见文件操作的示例详解
    目录从文件中读取数据为什么要提供文件路径逐行读取创建一个包含文件各行内容的列表使用文件中的内容包含千位以上的大型文件圆周率中包含你的生日吗写入文件附加到文件从文件中读取数据 1:读取...
    99+
    2024-04-02
  • Python文件的操作示例的详细讲解
    目录1. 文件的读写原理:2. 常用的文件打开模式3. 文件对象的常用方法4. 目录的相关操作1. 文件的读写原理: 文件的读写称为I/O操作。 操作原理: .py文件是用解释器...
    99+
    2024-04-02
  • Rust 中的文件操作示例详解
    目录文件路径文件创建和删除目录创建和删除文件创建和删除文件读取和写入文件打开文件读取文件写入相关资料文件路径 想要打开或者创建一个文件,首先要指定文件的路径。 Rust 中的路径操作...
    99+
    2024-04-02
  • Python操作word文档的示例详解
    目录写在前面创建一个文档先实现第一步,写入一个标题添加文字段落列表的添加图片的添加表格添加相关样式设置页眉和页脚写在前面 python-docx 不支持 doc 文档,一定要注意该点...
    99+
    2024-04-02
  • Python中字典常用操作的示例详解
    目录前言初始化合并字典字典推导式Collections 标准库字典转 JSON字典转 Pandas前言 字典是Python必用且常用的数据结构,本文梳理常用的字典操作,看这个就够了,...
    99+
    2024-04-02
  • Python操作HDF5文件示例
    目录引言创建文件和数据集写数据集读数据集引言 在Matlab操作HDF5文件中已经详细介绍了HDF5文件已经利用Matlab对其进行操作的方法。这篇文章总结一下如何在Python下使...
    99+
    2024-04-02
  • js中DOM事件常见操作的示例分析
    这篇文章主要介绍js中DOM事件常见操作的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、JavaScript的组成JavaScript基础分为三个部分:ECMAScrip...
    99+
    2024-04-02
  • python之PyPDF2:操作PDF文档示例详解
    PyPDF2是一个用于处理PDF文档的Python库。它提供了一系列的功能,使我们能够读取、修改和创建PDF文件。本文将详细介绍PyPDF2库的使用示例,包括读取文档信息、提取文本内容、合并和拆分文档以及添加水印等操作。 首先,我们需要安装...
    99+
    2023-09-02
    python 数据库 开发语言 pip
  • python文件操作详解
    文件操作是编程中必不可少的,配置文件,数据存储都是对文件操作;按文件操作与格式主要内容如下图: 文件基本操作为打开,读取,写入,关闭,我们按这个过程来详解讲解。 1.一个例子搞定打开,读取与关闭: 准备工作: 1>新建文件:E:\w...
    99+
    2023-01-31
    详解 操作 文件
  • Python 文件操作的常见问题解答:破解文件处理难题
    ...
    99+
    2024-04-02
  • 详解python文件的操作和异常的处理
    目录一、 文件的操作1.1创建文件1.2写入数据1.3读数据1.4 2读数据1.5读写数据1.6删除文件 1.7写入文件1.8读取图片 1.9备份图片1.10文件重命名1.11创建文...
    99+
    2024-04-02
  • Python中文件操作的常见问题及解决方法
    Python中文件操作的常见问题及解决方法摘要:文件操作是Python编程中非常常见的任务之一。然而,有时会遇到一些常见的问题,如文件不存在、文件写入错误等。本文将介绍一些常见问题,并提供相应的解决方法和代码示例。一、文件操作的常见问题文件...
    99+
    2023-10-22
    文件读取问题 文件写入问题 文件路径问题
  • 文件操作:Python 中的常见问题及解决方法
    在 Python 中,文件操作是非常常见的一种操作,我们可以通过打开文件、读取文件、写入文件等操作来对文件进行处理。但是在实际使用中,我们可能会遇到一些问题,例如文件不存在、文件权限不足等问题。本文将介绍 Python 中文件操作的常见问...
    99+
    2023-07-30
    数组 文件 ide
  • Python对PDF文件的常用操作方法详解
    目录工具从PDF中提取文本旋转和叠加页面加密PDF文件创建PDF文件补充工具 python3.7 Pycharm PDF PyPDF2 reportlab 从PDF中提取文本 PyP...
    99+
    2024-04-02
  • python中文件操作和异常处理的示例分析
    这篇文章主要介绍python中文件操作和异常处理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、 文件的操作1.1创建文件格式:f = open(‘文件', ‘w')或者f = open(...
    99+
    2023-06-22
  • Java文件操作实例详解
    本文实例为大家分享了Java文件操作的具体代码,供大家参考,具体内容如下 简介 本程序主要采用了FileInputStream和FileOutputStream两类对文件进行操作。具...
    99+
    2024-04-02
  • Python中文件操作的常见问题及技巧
    Python中文件操作的常见问题及技巧一、文件操作的常见问题文件路径问题:当我们需要操作文件时,首先需要确保我们对文件的路径是正确的。常见的问题包括:文件路径不存在:当我们指定的文件路径不存在时,Python会抛出FileNotFoundE...
    99+
    2023-10-22
    文件拷贝 文件路径处理 常见问题:文件读写 文件不存在处理 技巧:文件追加写入
  • PHP文件的操作示例
    小编给大家分享一下PHP文件的操作示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!fopen() 函数用于在 PHP 中打开文件。 打开文件 fopen() 函...
    99+
    2023-06-15
  • python中文件操作与异常的处理图文详解
    目录一、 文件的操作1.1创建文件1.2写入数据1.3读数据1.4读数据1.5读写数据1.6删除文件1.6写入文件1.7读取图片1.8备份图片1.9文件重命名1.10创建文件夹1.1...
    99+
    2024-04-02
  • python 文件读写操作示例源码解读
    目录文件写操作的案例代码解释在Python中,可以使用以下三种方法来读取文件文件写操作的案例 # 打开文件(只写模式) file = open('example.txt', 'w'...
    99+
    2023-03-24
    python 文件读写操作解读 python 文件读写源码解读
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作