miki_andy
发表于 2025-3-14 17:47:35
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:不会
第 1 题的答案是: f.flush()
第 2 题的答案是:从指针开始处读取3个字符
第 3 题的答案是:1行
第 4 题的答案是:
第 5 题的答案是:反斜杠要写两个
第 6 题的答案是:注意原文件是空白的或者已经备份。
第 7 题的答案是:可以
第 8 题的答案是:确定已经读取到的位置。以及用来定位。
第 9 题的答案是:文件结束符
第 10 题的答案是:f.tell()
-------- 动动手 --------
请将第 0 题的代码写在下方:
FishC_txt = open('C:\\Users\\56920\\Desktop\\123\\FishC.txt',"a+")
FishD_txt = open('C:\\Users\\56920\\Desktop\\123\\FishD.txt',"a+")
FishC_txt.seek(10)
add_text = FishC_txt.read(5)
FishD_txt.write(add_text)
FishC_txt.close()
FishD_txt.close()
请将第 1 题的代码写在下方:
FishC_txt = open('C:\\Users\\56920\\Desktop\\123\\FishC.txt',"a+")
FishC_txt.seek(0)
text = FishC_txt.read(15)
FishC_txt.close()
FishC_txt = open('C:\\Users\\56920\\Desktop\\123\\FishC.txt',"w")
FishC_txt.write(text)
FishC_txt.close()
请将第 2 题的代码写在下方:
open_myself = open('C:\\Users\\56920\\Desktop\\123\\open_myself.py',"a+")
print(open_myself.read())
请将第 3 题的代码写在下方:
水银炒鸡蛋
发表于 2025-3-15 20:02:34
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
不会
第 1 题的答案是:
使用flush()方法
第 2 题的答案是:
在文件中读取3个字符
第 3 题的答案是:
一行
第 4 题的答案是:
第 5 题的答案是:
第 6 题的答案是:
w模式会将原文件截断
第 7 题的答案是:
可以
第 8 题的答案是:
指向文件中的某一位置
第 9 题的答案是:
文件的结尾
第 10 题的答案是:
使用seek()方法
-------- 动动手 --------
请将第 0 题的代码写在下方:
请将第 1 题的代码写在下方:
请将第 2 题的代码写在下方:
请将第 3 题的代码写在下方:
jeremy1101
发表于 2025-3-16 11:33:50
0. 不会,会创建这个文件
1. 可以用flush()方法
2. 表示只读取3个字符
3. 一行字符,因为没有换行符
4. 因为print打印默认会换行,而for循环的时候是按每个可迭代对象来打印的,所以在打印第一个对象的时候I love FishC.\n的时候会因为有个换行符而两次换行
5. open的参数'w'会截取内容,而文件似乎因为编码问题无法被截取,所以报错了
6. 如果原文件有内容,会被截取,也就是被清空
7. 可以
8. 负责指向文件的当前位置,当读取的时候从这个位置往后读
9. end of file,文件指针指向最后
10. 用tell()方法
=========
0. 不会直接看答案
1.
f = open('FishC.txt', 'r+')
f.truncate(15)
f.close()
2.
f = open('53-2-open_myself.py', 'r')
for each in f:
print(each)
f.close()
3.看答案
akun呀
发表于 2025-3-17 21:52:30
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:看打开模式,r会报错,w不会报错,x不会报错,a不会报错
第 1 题的答案是:flush,但是不稳定
第 2 题的答案是:读取三个字符
第 3 题的答案是:一行,因为不会自动添加换行符
第 4 题的答案是:因为print会自动换行
第 5 题的答案是:于反斜杠(\)在字符串中被误解为 Unicode 转义序列的开始,可以加一个r
第 6 题的答案是:会清空文件
第 7 题的答案是:可以
第 8 题的答案是:定位输入读取的位置
第 9 题的答案是:end of file
第 10 题的答案是:f.tell()
-------- 动动手 --------
请将第 0 题的代码写在下方:
请将第 1 题的代码写在下方:
请将第 2 题的代码写在下方:
请将第 3 题的代码写在下方:
1Q84
发表于 2025-3-18 11:16:43
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
不会报错,结果是构建一个新的文件
第 1 题的答案是:
在课程中也有介绍吧,f.flush()再不关闭文件对象的条件下储存文件
第 2 题的答案是:
表示读取字符的数量
第 3 题的答案是:
一行字符串,没有换行符,则文件中出现一行
第 4 题的答案是:
第 5 题的答案是:
可以在文件位置开始前加上r,后面
第 6 题的答案是:
不要直接关闭
第 7 题的答案是:
也是直接创建一个
第 8 题的答案是:
指示当前位置
第 9 题的答案是:
第 10 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请将第 1 题的代码写在下方:
请将第 2 题的代码写在下方:
请将第 3 题的代码写在下方:
养个小鬼
发表于 2025-3-20 16:46:27
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
第 6 题的答案是:
第 7 题的答案是:
第 8 题的答案是:
第 9 题的答案是:
第 10 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请将第 1 题的代码写在下方:
请将第 2 题的代码写在下方:
请将第 3 题的代码写在下方:
llpayr
发表于 2025-3-22 18:01:05
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
第 6 题的答案是:
第 7 题的答案是:
第 8 题的答案是:
第 9 题的答案是:
第 10 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请将第 1 题的代码写在下方:
请将第 2 题的代码写在下方:
请将第 3 题的代码写在下方:
ioriqq123
发表于 2025-3-22 19:39:33
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
第 6 题的答案是:
第 7 题的答案是:
第 8 题的答案是:
第 9 题的答案是:
第 10 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请将第 1 题的代码写在下方:
请将第 2 题的代码写在下方:
请将第 3 题的代码写在下方:
lisihan01
发表于 2025-3-26 11:07:22
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
第 6 题的答案是:
第 7 题的答案是:
第 8 题的答案是:
第 9 题的答案是:
第 10 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请将第 1 题的代码写在下方:
请将第 2 题的代码写在下方:
请将第 3 题的代码写在下方:
iseexuli
发表于 2025-3-27 21:47:08
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
第 6 题的答案是:
第 7 题的答案是:
第 8 题的答案是:
第 9 题的答案是:
第 10 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请将第 1 题的代码写在下方:
请将第 2 题的代码写在下方:
请将第 3 题的代码写在下方:
灿烂千阳~
发表于 2025-3-29 23:12:52
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
不会
第 1 题的答案是:
f.flush()
第 2 题的答案是:
表示读取 size 个字符
第 3 题的答案是:
1
第 4 题的答案是:
print() 的默认行为会叠加换行符,导致意外空行。
第 5 题的答案是:
反斜杠 \ 被视为转义字符的开始。
解决方法:1.使用双反斜杠 \\2.使用原始字符串 r""
第 6 题的答案是:
"w" 模式会清空文件原有内容(如果文件已存在)。
第 7 题的答案是:
如果文件不存在,"a" 模式会创建一个新的文件。
如果文件已经存在,"a" 模式会将内容添加到文件末尾,而不会覆盖原有的内容。
第 8 题的答案是:
文件指针的核心作用是控制文件读写的起始位置,其行为受打开模式和操作方法的影响。
第 9 题的答案是:
核心作用:EOF 是数据流结束的标记,帮助程序安全终止读取操作。
第 10 题的答案是:
f.tell()
-------- 动动手 --------
请将第 0 题的代码写在下方:
请将第 1 题的代码写在下方:
请将第 2 题的代码写在下方:
请将第 3 题的代码写在下方:
一只槐安
发表于 2025-4-1 21:28:52
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
第 6 题的答案是:
第 7 题的答案是:
第 8 题的答案是:
第 9 题的答案是:
第 10 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请将第 1 题的代码写在下方:
请将第 2 题的代码写在下方:
请将第 3 题的代码写在下方:
ZPi
发表于 2025-4-4 13:25:41
-------- 问答题 --------
第 0 题的答案是:
不会
第 1 题的答案是:
flush()
第 2 题的答案是:
读取此行三个字符
第 3 题的答案是:
一行
第 4 题的答案是:
因为for语句是按行读取的,print又把换行符打印出来了
第 5 题的答案是:
python把反斜杠\U转译了
第 6 题的答案是:
确保文件里没重要信息,因为打开了就截断了
第 7 题的答案是:
可以
第 8 题的答案是:
用于定位要读取的字符
第 9 题的答案是:
end of the file
第 10 题的答案是:
tell()方法
-------- 动动手 --------
请将第 0 题的代码写在下方:
f1 = open("D:\\VsCodeProjects\\Python_FishC\\53_Homework\\FishC.txt", "r")
f2 = open("D:\\VsCodeProjects\\Python_FishC\\53_Homework\\FishD.txt", "w")
f2.write(f1.readline())
请将第 1 题的代码写在下方:
f = open("D:\\VsCodeProjects\\Python_FishC\\53_Homework\\FishC.txt", "r+")
f.truncate(15)
f.close()
请将第 2 题的代码写在下方:
f = open("D:\\VsCodeProjects\\Python_FishC\\53_Homework\\open_myself.py", 'r')
print(f.read())
请将第 3 题的代码写在下方:
ftest = open("D:\\VsCodeProjects\\Python_FishC\\53_Homework\\test.jpg", "b+a")
ftarget = open("D:\\VsCodeProjects\\Python_FishC\\53_Homework\\target.zip", "rb")
ftest.write(ftarget.read())
ftest.close()
ftarget.close()
kl6636207
发表于 2025-4-5 19:52:44
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:不会报错 会直接创建
第 1 题的答案是:f.flush()
第 2 题的答案是:从文件对象中数3个字符,如果遇到EOF就停止
第 3 题的答案是:一行字符串
第 4 题的答案是:把换行符当做一个空白行了
第 5 题的答案是:文件名编码格式不支持
第 6 题的答案是:若文件已存在,w模式会清空
第 7 题的答案是:可以
第 8 题的答案是:相当于光标的作用,定位输入字符的位置
第 9 题的答案是:end of file
第 10 题的答案是:f.tell()
-------- 动动手 --------
请将第 0 题的代码写在下方:
请将第 1 题的代码写在下方:
请将第 2 题的代码写在下方:
请将第 3 题的代码写在下方:
Derekghost
发表于 2025-4-8 17:50:31
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
第 6 题的答案是:
第 7 题的答案是:
第 8 题的答案是:
第 9 题的答案是:
第 10 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请将第 1 题的代码写在下方:
请将第 2 题的代码写在下方:
请将第 3 题的代码写在下方:
xiaohua.hhhh
发表于 2025-4-9 11:30:51
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
第 6 题的答案是:
第 7 题的答案是:
第 8 题的答案是:
第 9 题的答案是:
第 10 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请将第 1 题的代码写在下方:
请将第 2 题的代码写在下方:
请将第 3 题的代码写在下方:
zkw1225
发表于 2025-4-10 17:16:31
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
不会
第 1 题的答案是:
flush()
第 2 题的答案是:
3个字节
第 3 题的答案是:
1
第 4 题的答案是:
print换行了
第 5 题的答案是:
转义字符
第 6 题的答案是:
截断
第 7 题的答案是:
不可以
第 8 题的答案是:
光标
第 9 题的答案是:
end of file
第 10 题的答案是:
f.tell()
-------- 动动手 --------
请将第 0 题的代码写在下方:
f = open(r"D:\000AAA学习\python\FishC.txt","r")
content=f.read()
content=content
f.close()
g = open(r"D:\000AAA学习\python\FishD.txt","w")
g.write(content)
g.close()
请将第 1 题的代码写在下方:
f = open(r"D:\000AAA学习\python\FishC.txt","r")
content=f.read()
content=content
f.close()
g = open(r"D:\000AAA学习\python\FishC.txt","w")
g.write(content)
g.close()
请将第 2 题的代码写在下方:
from pathlib import Path
fpath = Path(__file__)
f= open(fpath,"r")
for each in f:
print(each,end="")
f.close()
请将第 3 题的代码写在下方:
with open(r"D:\000AAA学习\python\hw\test.jpg","ab") as f:
with open(r"D:\000AAA学习\python\hw\target.zip","rb") as g:
content = g.read()
f.write(content)
Alan楠
发表于 2025-4-11 20:46:10
问答题:
0.如果尝试使用 open() 函数打开一个不存在的文件,是否会报错?
会的
1. “在打开一个文件对象之后,大多数的文件操作都是在缓冲区里面进行的。因此,如果希望将文件内容保存,我们需要使用 close() 方法关闭文件对象,这样数据才能从缓冲区写入到文件中。”,那么请问大家,有没有办法在不关闭文件对象的情况下,进行内容的保存呢?
使用 flush() 方法,这会强制将缓冲区内容写入磁盘,但文件仍保持打开状态。
2. 请问如果指定 readline(size=-1) 方法的 size 参数为 3,那么表示的含义是什么?
在 Python 中, readline(size=-1) 方法的 size 参数用于指定读取的最大字节数。当 size=3 时,表示的含义是:
从文件中读取一行内容,但最多只读取该行的前 3 个字节。
如果该行不足 3 个字节,则返回整行内容。如果该行超过 3 个字节,则只返回前 3 个字节,文件指针会停留在第 3 个字节处。
3. 请问下面代码会在文件中写入几行字符串呢?
>>> f = open("FishC.txt", "w") >>> f.writelines(["FishA", "FishB", "FishC"]) >>> f.close()
这段代码会在文件中写入 1 行字符串,而不是 3 行。原因如下:
writelines() 方法会将列表中的字符串连续写入,不会自动添加换行符。
最终文件内容会是:"FishAFishBFishC"(所有字符串连在一起)。
4. 请问在课堂中的代码,为什么我们写入的时候只有一个换行符,但是使用 for 语句读取并打印出来却多了一个空白行呢?
>>> f = open("FishC.txt", "w")
>>> f.writelines(["I love FishC.\n", "I love my wife."])
>>> f.close()
>>> f = open("FishC.txt", "r")
>>> for each in f:
... print(each)
I love FishC.
I love my wife.
这个现象是因为 Python 的文件迭代行为和 print() 函数的特性共同作用导致的。具体原因如下:
1. 文件中实际只有 2 行内容:
第一行 "I love FishC.\n" (包含换行符)
第二行 "I love my wife." (没有换行符)
2. 当使用 for each in f: 迭代文件对象时:
每次迭代会返回一行内容,包括行尾的换行符
所以 each 的值分别是:
第一次: "I love FishC.\n"
第二次: "I love my wife."
3. print() 函数会自动在输出末尾添加换行符:
当打印 "I love FishC.\n" 时:
字符串本身有换行符
print() 又加一个换行符
结果就是两个换行,看起来多了一行空白
当打印 "I love my wife." 时:
字符串没有换行符
print() 加一个换行符
显示正常
5. 请问下面代码为什么会报错?
>>> f = open("C:\Users\goodb\Desktop\FishC.txt", "w")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
这个错误是因为在Python字符串中,反斜杠 \ 被用作转义字符的开头。在路径 "C:\Users\goodb\Desktop\FishC.txt" 中, \U 被Python解释器误认为是Unicode转义序列的开头(格式应为 \Uxxxxxxxx ),导致语法错误。
6. 使用 "w" 模式打开文件之前一定要注意什么?
在使用 "w" 模式打开文件时,有几个关键注意事项:
文件会被清空 :如果文件已存在,内容会被立即清空(不可恢复)
路径安全性 :确保路径正确,避免误删重要文件
权限问题 :确保程序有写入权限
7. 如果一个文件不存在,是否可以使用 "a" 模式将其打开?
可以使用 "a" 模式打开一个不存在的文件,Python 会自动创建该文件。
与 "w" 模式的区别:
"a" :文件不存在则创建,存在则追加(保留原内容)
"w" :文件不存在则创建,存在则清空
8. 文件指针的作用是什么?
文件指针是Python文件对象内部维护的一个位置标记,用于跟踪当前在文件中的读写位置。它的主要作用包括:
定位功能 :记录当前操作位置(以字节为单位)
导航功能 :可以通过 seek() 方法移动指针位置
读写分离 :控制读/写操作的起始点
9. 什么是 EOF?
EOF(End Of File) 是文件结束的标志,表示已经到达文件的末尾。
10. 如何知道文件指针当前指定的位置?
在Python中,可以使用文件对象的 tell() 方法来获取文件指针当前的位置(以字节为单位)。
代码
with open("test.txt", "r") as f:
# 初始位置(通常是0)
print(f.tell())# 输出: 0
# 读取5个字符后
f.read(5)
print(f.tell())# 输出: 5
# 读取整行后
f.readline()
print(f.tell())# 输出当前行结束位置
# 移动到文件末尾
f.seek(0, 2)# 第二个参数2表示从文件末尾计算
print(f.tell())# 输出文件总字节数
动动手:
0. 请下载文件( FishC.txt (25 Bytes, 下载次数: 1055) ),编写代码,截取其中第 10~15 个字符,并保存为新文件(FishD.txt)。
代码
original_string = "FishAFishBFishCFishDFishE"
substring = original_string
with open('/Users/kusunoki/Desktop/小甲鱼Python 学习/小甲鱼课后练习/FishD.txt', 'w') as file:
file.write(substring)
print(f"已成功截取字符:{substring}")
print("并保存到FishD.txt文件中")
1. 还是上一题的那个文件(FishC.txt),这次请编写代码,截取前面 15 个字符,并保存覆盖保存原文件。
代码
original_string = "FishAFishBFishCFishDFishE"
substring = original_string[:16]
with open('/Users/kusunoki/Desktop/小甲鱼Python 学习/小甲鱼课后练习/FishD.txt', 'w') as file:
file.write(substring)
print(f"已成功截取字符:{substring}")
print("并覆盖保存原文件")
2. 请编写一个源代码(open_myself.py),它的功能就是打开自己的源文件,然后打印出来。
代码
import os
current_file = os.path.abspath(__file__)
# 打开自己的源文件并读取内容
with open(current_file, 'r', encoding='utf-8') as file:
content = file.read()
# 打印文件内容
print("以下是源文件的内容:")
print("-" * 30)
print(content)
print("-" * 30)
print("文件内容打印完毕")
brav
发表于 2025-4-12 13:06:05
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
写入不报错,打开读取会报错
第 1 题的答案是:
f.flush()
第 2 题的答案是:
err
第 3 题的答案是:
1行
第 4 题的答案是:
pirnt默认是换行分隔,把end参数改成“”
第 5 题的答案是:
\反斜杠被解释转义字符引起的,在字符串前面加一个r解决
第 6 题的答案是:
确保文件内没有内容,用w直接打开会删除文档内指针所在位置后面的内容
第 7 题的答案是:
yes
第 8 题的答案是:
指向当前可操作的字符位置,完成再指向下一个
第 9 题的答案是:
文件结尾的位置
第 10 题的答案是:
tell()
-------- 动动手 --------
请将第 0 题的代码写在下方:
请将第 1 题的代码写在下方:
f.truncate(15)
f.flush()
请将第 2 题的代码写在下方:
f1 = open(r"C:\Users\Lenovo\Desktop\PYTON作业\53.py", "r+")
print(f1)
请将第 3 题的代码写在下方:
张伯谦
发表于 2025-4-12 21:44:36
1
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
第 6 题的答案是:
第 7 题的答案是:
第 8 题的答案是:
第 9 题的答案是:
第 10 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请将第 1 题的代码写在下方:
请将第 2 题的代码写在下方:
请将第 3 题的代码写在下方: