【python学习】基础篇-文件与系统-写入内容到指定文件

news/2024/11/30 0:30:43/

利用文件对象提供的 write() 方法,可以向文件中写入内容。
语法格式如下:
file.write(string)
其中,fle 为打开的文件对象:
string 为要写入的字符串。

f=open('word.txt', 'a+')
# 以追加的方式打开文件
# 将信息写入文件
f.write("有时候你觉得特别难,也许因为有更大的收获')
f.close()
# 关闭文件

有的时候,需要以指定的编码格式(如UTF-8)将内容写入文件。
如将书名“Python 实效编程百例写入到book.txt 后保存编码格式为“utf-8”,
实现代码如下:

with open('book.txt','w', encoding='utf-8') as file:file.write('Python 实效编程百例'+'\n')
# 写入内容后换行就要加\n

使用with 语句处理文件
打开文件后,要及时将其关闭。如果忘记关闭可能会出现意想不到的问题。
另外,如果在打开文件时抛出了异常,那么将导致文件不能被及时关闭。
无论是否抛出异常,with 语句执行完毕后关闭已经打开的文件。
with 语句的语法格式如下:

with expression as target:with-body

参数说明:
expression:用于指定一个表达式,这里可以是打开文件的 open()函数
target:用于指定一个变量,并且将expression 的结果保存到该变量中
with-body: 用于指定 with 语句体,其中可以是执行 with 语句后相关的一些操作语句。
如果不想执行任何语句,可以直接使用 pass 语句代替。

print("\n","="*10,"Python经典应用","="*10)
with open('message.txt', 'w') as file:
# 创建或打开保存Python经典应用信息的文件pass
print("\n 即将显示..... \n")

规避常见的错误操作
1.规避文件不存在的陷阱
在默认的情况下,使用 open()函数打开一个不存在的文件,会抛出异常错误。
可以使用 os.path模块提供的 exists()函数判断文件是否存在。
例如读取文件 book.txt,如果文件存在,读取文件并输出内容;
如果文件不存在,则新建 book.txt 文件。实现代码如下:

import os
if os.path.exists('book.txt'):with open('book.txt', 'r') as file:for line in file:print(line)
else:file =open('book.txt')file.close()

2.规避读取不同编码格式文件时的陷阱
由于文件保存格式的不同,在读取文件时如果格式不正确,将会出现乱码问题或抛出异常。
1.在打开文件时指定文件的格式
例如读取文件格式为“gbk”的文件(“maintxt”),在打开文件时设置编码格式为“encoding=‘GBK’”

try:with open('book.txt', 'r',encoding='GBK') as file:for line in file:print(line)
except Exception:with open('book.txt', 'r', encoding='UTF-8') as file:for line in file:print(line,2)

2.以二进制打开文件,然后对读取的内容进行编码
用 Python 读取文件经常会出现字符编码错误,用二进制方式打开文件,就不会出现错误了。但需要在读取文件时进行编码。
首先使用 isimstance()函数判断读取的内容是否为 str 类型,如果是,则直接读取文件内容.如果不是,则使用异常处理程序尝试使用“utf-8”方式解码,否则采用“gbk”方式解码。实现代码如下:

with open('book.txt', 'rb') as file:lines = file.read()if isinstance(lines, str):print(new)else:try:new = lines.decode("utf-8")print(new)except:try:new = lines.decode("gbk")print(new)except:pass

3.强制以某种模式读取文件,忽略编码错误
有时我们需要以某种格式读取指定文件,而忽略编码错误带来的乱码问题。例如以二进制方式读取文件“maintxt”中的内容,然后以“gbk”编码强制读取该文件,实现代码如下:

with open('book.txt', 'rb') as file:article = file.read()new = article.decode('gbk',errors='ignore')print(new)

http://www.ppmy.cn/news/61992.html

相关文章

TikTok数据报告要怎么看?

TikTok数据报告是一种分析和汇总TikTok平台上数据的报告,包含TikTok平台上的用户数据、视频数据、广告数据等。TK卖家每年可以通过分析TK数据报告来更好地了解受众和市场趋势,从而制定更加精准的营销策略和提升销售业绩。TikTok数据报告也可以帮助商家更…

很佩服的一个Google大佬,离职了。。

这两天,科技圈又有一个突发的爆款新闻相信不少同学都已经看到了。 那就是75岁的计算机科学家Geoffrey Hinton从谷歌离职了,从而引起了科技界的广泛关注和讨论。 而Hinton自己也证实了这一消息。 提到Geoffrey Hinton这个名字,对于一些了解过…

烈日炎炎的夏天骑行,怎么预防中暑及中暑后怎么处理?

随着天气的逐渐炎热,夏季骑行逐渐成为了人们喜爱的一项运动。但是,在享受骑行乐趣的同时,我们也要时刻关注身体健康,预防中暑等意外情况的发生。下面,本文将从多个角度为大家讲解夏季骑行中暑的预防和处理方法。 一、选…

vue3中watch的用法及讲解

当我们在Vue 3应用程序中想要监听数据的变化时,可以使用 watch 函数。watch 函数支持多种用法,包括监听响应式对象、计算属性、ref 对象等等。 下面我们就来详细讲解一下 watch 函数的用法。 监听响应式对象 watch 函数可以通过监听一个响应式对象来实…

CC、Subtile、图文

CC简介 CC(Closed Captioning)是一种为电视节目提供文本字幕的技术,通常是用来让听障人士和非母语人士更好地理解电视节目中的对话和内容。 CC技术在全球范围内得到了广泛的应用,不仅在欧洲和南美,还在北美、亚洲以及…

K8S相关核心概念

个人笔记: 要弄明白k8s的细节,需要知道k8s是个什么东西。它的主要功能,就是容器的调度--也就是把部署实例,根据整体资源的使用状况,部署到任何地方 注意任何这两个字,预示着你并不能够通过常规的IP、端口…

P1058 [NOIP2008 普及组] 立体图

题目描述 小渊是个聪明的孩子,他经常会给周围的小朋友们讲些自己认为有趣的内容。最近,他准备给小朋友们讲解立体图,请你帮他画出立体图。 小渊有一块面积为 ��mn 的矩形区域,上面有 �&#x…

Blender渲染动画太慢怎么办?用云渲染啊!

1995 年,荷兰开发者 Ton Roosendaal 开发了三维制作软件 Blender ,这是一款功能强大的 3D 创建工具,用于创建 3D 图形、交互式 3D 应用程序、视频游戏、虚拟现实视频和动画。它自 2002 年以来一直作为开源软件提供,可在 macOS、Li…