Python 文件操作与路径

这篇具有很好参考价值的文章主要介绍了Python 文件操作与路径。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python 文件操作与路径

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页:小嗷犬的博客
🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。
🥭本文内容:Python 文件操作与路径



文件与路径

在计算机中,文件指的是存储在磁盘上的数据序列,它可以包含任何数据内容。

文件名是文件的一个重要属性。文件名通常由文件主名和扩展名构成。一般来说, 主名和扩展名之间用一个圆点“.”隔开。 扩展名由 1 ~ 4 个字符组成,用于表示文件的类型。 例如:report.docx 是主名为report、扩展名为docx 的word文档,searchGoods.py 是主名为searchGoods、扩展名为 py 的 Python 源文件。

计算机中使用文件夹(也常常称为目录)来组织文件。文件夹可以包含文件和其他文件夹。

路径指明了文件在计算机中存储的位置。路径中包含了存储文件的各级文件夹。文件夹之间用斜线隔开。在 Windows 中使用倒斜杠\来分隔,在 Mac OS 和 Linux 中使 用正斜杠/作为路径分隔符。有两种方式表示文件路径。

  • 绝对路径:从根目录开始的路径。
  • 相对路径:从当前工作目录开始的路径。

还有点.和点点..文件夹。它们不是真正的文件夹,而是可以在路径中使用的特殊名称。单个的句点(“点”)用作文件夹目名称时,是“这个目录”的缩写。两个句点(“点点”)意思是父文件夹。

每个运行在计算机上的程序, 都有一个“当前工作目录”。 在 Python 中, 可以用 os 模块中的 getcwd() 方法获取当前工作目录:

import os
os.getcwd()

假如在根目录的 Users 文件夹下有一个文件夹 xiaoaoquan, 其中有一个 Documents 文件夹,存储了 report.docx 文件。

用绝对路径描述这个文件的位置为:

/Users/xiaoaoquan/Documents/report.docx

如果当前工作目录是 /Users/xiaoaoquan,用相对路径描述这个文件的位置为:

Documents/report.docx

os 模块中还包含大量文件相关操作的方法。 例如,listdir(path=None) 方法返回指 定目录中包含的文件和子目录列表,默认情况下返回当前工作目录中的信息。

os.listdir()

文本文件与二进制文件

计算机上存储的文件都是以二进制存储的,一般可以采取以下两种方式读取:

  • 文本文件:文件内容是常规的字符, 不会包含字体、大小和颜色等信息, 例如带 有 .py 扩展名的 Python 源文件。
  • 二进制文件:文件内容是特殊的字节数据, 例如 Word 文档、PDF 文档、图像文件 和编译后的可执行文件。

计算机中使用字符集表示字符。最常用的美国标准信息交换代码(American Standard Code for Information Interchange,ASCII 码)定义了从 0 到 127 的整数对应的字符。

print(ord('a'))
print(chr(97))

Unicode 突破了 ASCII 码只能表示英文字母和符号的限制, 为每种语言的每个字符设定了唯一的编码,以满足跨语言、跨平台进行文本转换和处理的要求。

print(ord('嗷'))

Unicode 字符按照特定编码规则(例如 UTF8 编码)翻译为原始字节形式的过程被称为编码。反过来,把原始字节翻译为 Unicode 字符串的过程则被称为解码


操作文件

在 Python 中,操作文件包含 3 个步骤:

  1. 调用 open() 函数打开物理文件,返回一个文件对象。
  2. 调用文件对象的 read()write() 方法读写文件。
  3. 调用文件对象关闭文件。

打开文件

Python 通过内置的 open() 函数打开文件并创建该对象。

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
file1 = open('test.txt')
print(type(file1))
print(file1)

利用内置 open() 函数创建文件对象赋值给 file1 后, 直接查看其内容可以看到该 对象打开的物理文件(含路径和文件名),打开模式和编码。

参数 mode 是打开文件的模式,如表所示,默认值为 ‘rt’:

模式 说明
‘r’ 只读模式,如果文件不存在,返回异常FileNotFoundError,默认值
‘w’ 覆盖写模式,文件不存在则创建,存在则完全覆盖源文件
‘x’ 创建写模式,文件不存在则创建,存在则返回异常FileExistsError
‘a’ 追加写模式,文件不存在则创建,存在则在原文件最后追加内容
‘b’ 二进制文件模式
‘t’ 文本文件模式,默认值
‘+’ 与r/w/x/a一同使用,在原功能基础上增加同时读写功能

参数 encoding 是指定文本文件读取数据时解码或写入数据时编码所用的规则, 为默认值 None 时使用的规则取决于操作系统。通过 sys 模块的方法可以查看当前默认编码。

import sys
sys.getdefaultencoding()

关闭文件

在操作完文件后,必须将文件关闭,这点非常重要。

调用文件对象的 close() 方法可以关闭文件, 终止文件对象与磁盘物理文件的连接、 释放操作系统资源。在写入和追加写入模式下,暂存于内存中的文件内容会输出到磁盘中永久保存。

file1 = open('test.txt')
file1.close()

写入文本文件

当指定 open() 函数的 mode 参数值为 ‘w’ ‘x’ 和 ‘a’ 时,可以向创建的文件对象中写入数据。使用文件对象的 write() 方法就可以将文本写入文件中。

file_obj.write(text)
file1 = open('test.txt', 'w', encoding='utf-8')
file1.write('我是小嗷犬。\n')
file1.close()

读取文本文件

在 Python 中, 使用 open() 函数打开文件时,mode 参数的默认值是“ rt”, 即以文本文件的形式读取文件。

使用文件内置方法读取

对于可读的文件对象,可以使用表的四种方法读取内容:

方法 说明
<file>.readall() 以字符串形式返回整个文件内容
<file>.read(size=-1) 默认读入从当前位置至文件末尾的内容;当size参数为大于0的正整数n时, 从文件中读入最多n个字符
<file>.readline(size = -1) 默认从文件中读入一行内容;当size参数为大于0的正整数n时, 从当前行读入最多n个字符
<file>.readlines(hint=-1) 默认返回以文件中所有行为元素构成的列表;当hint参数为大于0的正整数n时,读入的所有行字符数不超过 n行

当打开文本文件时,会有一个指针指向文件开头的字符。每次读取数据后,指针会往后移动到相应位置。 例如,在使用 readline() 读入一行内容时, 指针会移动到下一个换行符的后面,直到指向文件尾部标记 EOF(end of file)


使用 for 循环逐行读取

在绝大多数情况下,对于文本文件的读取都是逐行读取。文件对象本身是一个可迭代对象。 因此,通常情况下,推荐使用 for 循环来逐行读取文本文件内容。

file1 = open('test.txt', 'w', encoding='utf-8')
file1.write('我是小嗷犬。\n喜欢嗷嗷嗷。\n')
file1.close()
file2 = open('test.txt', encoding='utf-8')
for line in file2:
 print(line)
file2.close()

使用列表推导式和 map() 函数逐行处理

文件作为可迭代对象, 可以使用列表推导式和 map() 函数对每行进行相应处理, 生成新的列表。

file1 = open('test.txt', 'w', encoding='utf-8')
file1.write('我是小嗷犬,\n喜欢嗷嗷嗷。\n')
file1.close()
file2 = open('test.txt', encoding='utf-8')
lines1 = [line.rstrip() for line in file2]
print(lines1)
lines2 = list(map(lambda line: line.rstrip(), file2)
print(lines2)
file2.close()

使用 with 语句自动管理

Python 中的 with 语句适用于对资源进行访问的场合, 确保不管使用过程中是否发生异常都会释放资源,比如文件使用后自动关闭。文章来源地址https://www.toymoban.com/news/detail-403443.html

file1 = open('test.txt', 'w', encoding='utf-8')
file1.write('我是小嗷犬。\n喜欢嗷嗷嗷。\n')
file1.close()
with open('test.txt', encoding='utf-8') as file2:
    for line in file2:
        print(line)

到了这里,关于Python 文件操作与路径的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python读取文件相对路径理解以及文件读取路径格式

    绝对路径 :指的是是当前文件在 计算机磁盘中存放的具体位置 就是死的,物理上面的 相对路径 :指的是文件 相对于当前的py文件所处的位置 。就是参照py文件来说明路径,参照物嘛 读取文件路径方式(path.xls文件为例子)   执行命令的py文件同path.xls文件在同一个目录an

    2024年02月06日
    浏览(48)
  • MFC的文件操作——获取指定文件夹下面所有文件路径和删除指定文件夹下面所有文件

    目录 1.获取指定文件夹下面所有文件路径  2.删除指定文件夹下面所有文件 3.MFC的CString 字符串操作 4.MFC的 Int类型 与 Htuple类型数据之间转换  5.上述提及的函数应用 6.MFC与Halcon联合编程,获取halcon异常 7.MFC获取指定路径下的文件夹路径           ①、文件夹路径获取方式 ②

    2024年02月16日
    浏览(116)
  • 【python基础】文件-文件路径

    我们发现不管是写入还是写出操作,我们提供的都是文件名,其实这里准确说应该是文件路径。当我们简单把文件名传递给open函数时,Python将在当前执行程序的文件所在的目录中查找文件名所代表的文件。 根据组织文件的方式,可能需要打开不在当前执行程序文件所属目录

    2024年02月10日
    浏览(49)
  • Python获取与处理文件路径/目录路径

      1.1 获取当前文件的绝对路径 使用**os.path.abspath()**获取当前文件的绝对路径。 输出:   1.2.1 获取当前文件的所在目录 使用**os.path.dirname()**获取当前文件的所在目录。 输出:   1.2.2 获取当前文件的所在目录的上一级目录 使用多个**os.path.dirname()**嵌套以获取当前文件的所

    2024年01月17日
    浏览(51)
  • python文件读取&导包的绝对路径、相对路径

    😊 作者简介 :大家好我是hellobigorange,大家可以叫我大橙子 📃 个人主页 :hellobigorange的个人主页 📰如果觉得博主的文章还不错的话,请👍三连支持一下博主哦🤞 💖 本文摘要 :本文主要讲述了文件读取的绝对路径和相对路径;导包的绝对路径和相对路径,以及当前工作

    2023年04月08日
    浏览(59)
  • python 获取当前文件路径

    一. Python 获取当前文件路径方法 sys.path[0] 获取文件当前工作目录路径(绝对路径) sys.argv[0]|获得模块所在的路径(由系统决定是否是全名) 若显示调用python指令,如python demo.py,会得到绝对路径; 若直接执行脚本,如./demo.py,会得到相对路径。 __ file __ 获得文件所在的路径(由系统

    2023年04月25日
    浏览(50)
  • Python:pycharm中读取文件的相对路径和绝对路径

    要读取如图所示文件的相对路径: 方法1:直接根据文件路径手动读取 D:PycharmProjectspythonProjecttorch_learningtest_path.py 方法2:os.path.abspath(path)获取 比如我想从左图文件”test_path“访问右图\\\"0013035.jpg\\\"文件,采用相对路径: 1.获取当前文件的绝对路径:D:PycharmProjectspythonProjectt

    2024年02月06日
    浏览(48)
  • python os模块获取文件路径

    1、 # 获取当前工作目录的上一级目录 dir_path = os.path.dirname(os.path.abspath(\\\'.\\\')) 2、获取当前路径: 3、获取当前路径的文件名: file_name = os.path.basename(os.getcwd()) 获取当前路径下所有文件名: file_names = os.listdir(os.getcwd()) 4、字符串正则化 字符串正则化(string normalization)是指将不同

    2024年02月14日
    浏览(38)
  • python中对文件路径的获取

    1、获取当前文件的绝对路径 输出:E:pythonprojecttestpath_test.py 2、获取当前文件的所在目录 输出:E:pythonprojecttest 3、获取当前文件所在目录的上一级目录 输出:E:pythonproject 4、获取指定文件的路径(例如想获得project文件夹下的test.txt文件路径) 输出: E:pythonprojecttest

    2024年02月03日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包