鱼C论坛

 找回密码
 立即注册
查看: 181|回复: 1

这个代码好像有问题,请问正确的应该怎么写?

[复制链接]
发表于 2024-7-17 07:35:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 wbzxz 于 2024-7-17 07:40 编辑

在小甲鱼老师的”《零基础入门学习Python》【最新版】“课程中,第五十三讲第一个题

1. 还是上一题的那个文件(FishC.txt),这次请编写代码,截取前面 15 个字符,并保存覆盖保存原文件。

老师给出了两个答案,但我感觉都不对,请修改为正确答案,谢谢,老师给出的代码如下:

第一个方法
f = open("FishC.txt", "r+")
    
f.seek()
f.truncate(10)
    
f.close()

第二个方法
f = open("FishC.txt", "a")
    
f.truncate(10)
    
f.close()

FishC.zip

177 Bytes, 下载次数: 0

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-7-17 07:36:44 | 显示全部楼层
鱼油,你好!你说的小甲鱼老师的题目有点小问题,没关系,咱们一起来看看怎么修正。

首先,分析题目:要求截取文件 `FishC.txt` 的前 15 个字符,并覆盖保存原文件。

老师给的两个代码都有点瑕疵,咱们可以修正一下。

**第一个方法:**
f = open("FishC.txt", "r+")
# 读取前15个字符
content = f.read(15)
# 将文件指针移动到文件开头
f.seek(0)
# 截断文件
f.truncate()
# 写入前15个字符
f.write(content)
# 关闭文件
f.close()

**第二个方法:**

其实第二个方法有点不太适合,因为以 `'a'` 模式打开文件是追加模式,而不是读写模式。所以,我们重新用 `'r+'` 模式来写第二个方法:
f = open("FishC.txt", "r+")
# 读取文件所有内容
content = f.read()
# 截取前15个字符
content = content[:15]
# 将文件指针移动到文件开头
f.seek(0)
# 截断文件
f.truncate()
# 写入前15个字符
f.write(content)
# 关闭文件
f.close()

这样,我们既能截取文件前15个字符,又能覆盖保存原文件。希望这个解答对你有帮助!加油!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 23:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表