欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > 17 python 文件管理

17 python 文件管理

2025/4/27 7:14:29 来源:https://blog.csdn.net/wml731/article/details/146563818  浏览:    关键词:17 python 文件管理

在办公室里,我们就像勤劳的牛马,每天要处理各种各样的文件,比如记录工作内容的文档、整理数据的表格等。Python 就像是我们的超级助手,能帮助我们高效地对这些文件进行编码和操作。

一、文件与编码

1.1 文件

什么是文件?
在办公室的日常工作中,文件就像是我们的工作伙伴。想象一下,每天我们要处理的工作安排表、会议记录、客户信息等,这些都以文件的形式存在。
在计算机中,文件是存储在计算机中的数据集合,它可以包含文本、图像、音频等各种类型的信息。一段文章、一个视频、一首音乐、一个可执行的程序,都被做成文件,它存在于硬盘中,存在我们的手机里。

如:python的安装目录下就是一个个的文件。

1.2 文件编码

在计算里,只认识0和1这两个数字,我们看到的是可识别的文本,那要怎么告诉计算机呢,这就需要到编码了,就是翻译,将人能看懂的翻译一下,变成机器可以看懂的。
常见的文本文件编码有 UTF - 8、GBK 等。在电脑里,后缀名为.txt

  • UTF - 8:这是一种通用的编码方式,支持世界上几乎所有的字符,就像一种全球通用的语言,能让不同国家的人都能交流。Python 默认使用的就是 UTF - 8 编码。
  • GBK:主要用于中文编码,在国内的一些老系统或者特定文件中比较常见,就像是中文的一种方言,专门服务于中文用户。

我们先打开文件有个直观感受

在文本文件的右下角有个UTF-8的显示就是文件的编码

二、文件操作

2.1 打开文件

在 Python 中,要对文件进行操作,首先得打开它。这就好比我们要查看办公室的文件,得先把文件从文件柜里拿出来。使用open()函数来打开文件,它需要两个重要的参数:文件路径和打开模式。

我们在打开文件之前,先创建一个文本文件

再创建好的txt文件里 输入几句话:

打开文件的语法:open(name,mode,encoding)

name:要打开的目标文件名的字符串(可以包含文件所在的具体路径)。

mode:打开文件的模式(访问模式):只读、写入、追加等。

r以只读方式打开文件,这是默认模式,只能读取,不能写入。
w打开一个文件只用于写入。如果该文件已存在则打开文件,从头开始编辑,原有内容会被删;除如果该文件不存在,创建新文件。
a打开一个文件用于追加。如果该文件已存在,新的内容将会被写入到已有内容之后。
如果该文件不存在,创建新文件进行写入。

encoding:编码格式(推荐使用UTF-8),如果没有指定该参数,Python会调用locale.getpreferredencoding() 获取系统默认编码。

file_path = 'work_schedule.txt'
# 'r' 表示以只读模式打开文件
file = open(file_path, 'r', encoding='utf-8')
print(file)

这里我们以只读模式'r'打开了一个工作安排文件work_schedule.txt,并指定了编码为 UTF - 8。 

2.2 关闭文件

关闭文件的语法:close()

file_path = 'work_schedule.txt'
# 'r' 表示以只读模式打开文件
file = open(file_path, 'r', encoding='utf-8')
print(file)
file.close()

不过,为了确保文件在使用完后能正确关闭,我们通常使用with语句,它会自动帮我们处理文件的关闭操作,后面就不需要再写close了。

file_path = 'work_schedule.txt'
with open(file_path, 'r', encoding='utf-8') as file:# 在这里对文件进行操作pass

 2.3 读取文件

打开文件后,我们就可以读取里面的内容了。这就像我们从文件中获取工作信息一样。

  • 读取整个文件内容
    使用read()方法可以读取文件的全部内容。
    file_path = 'work_schedule.txt'
    with open(file_path, 'r', encoding='utf-8') as file:content = file.read()print(content)
    # 我是机器人
    # 我很聪明
  • 逐行读取文件内容
    使用readline()可以读取一行文本:
    file_path = 'work_schedule.txt'
    with open(file_path, 'r', encoding='utf-8') as file:print(file.readline())print(file.readline())
    # 我是机器人
    #
    # 我很聪明
    如果文件很大,逐行读取会更高效。使用for循环可以逐行读取文件。
    file_path = 'work_schedule.txt'
    with open(file_path, 'r', encoding='utf-8') as file:for line in file:print(line.strip())
    # 我是机器人
    # 我很聪明

    strip()方法用于去除每行末尾的换行符,这里我们逐行读取了work_schedule.txt的内容。

2.4 写入文件

 有时候,我们需要往文件里写入新的内容,就像我们在文件中记录新的工作信息。使用'w'模式打开文件可以进行写入操作,如果文件不存在会创建新文件,如果文件已存在会覆盖原有内容。

写入文件的语法:write(内容)

file_path = 'work_daily_report.txt'
with open(file_path, 'w', encoding='utf-8') as file:report_content = "今天完成了项目的需求分析,与客户沟通了进度。"file.write(report_content)

执行后,我们会看到有这么一个文件

双击打开,就会看到已经写入如下内容

2.5 追加内容到文件 

如果我们不想覆盖原有文件内容,而是在后面追加内容,可以使用'a'模式。

file_path = 'work_daily_report.txt'
with open(file_path, 'a', encoding='utf-8') as file:additional_content = "\n还参加了团队的周会,讨论了下一步的工作计划。"file.write(additional_content)

 多了一行字符串,原来的内容还存在:

 三、查看文件编码

3.1 安装包chardet

有时候,我们拿到一个文件,不知道它是什么编码。可以借助 Python 的chardet库来查看。不过,当我们导入这个包时,如下,报红色,代码无法通过:

我们得先安装这个包,在pycharm的左下方工作区域里,如下图打开控制台

在控制里输入pip install chardet

回车,开始安装

安装成功

这时候我们在看导入包,红色消失了

3.2 查看编码

我们现在就可以查看文件编码了,

语法:chardet.detect(文本内容)

import chardetfile_path = 'work_daily_report.txt'
with open(file_path, 'rb') as file:raw_data = file.read()result = chardet.detect(raw_data)print(f"文件的编码是: {result['encoding']}")
# 文件的编码是: utf-8

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词