|
发表于 2025-5-23 19:53:18
|
显示全部楼层
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:会报错
第 1 题的答案是:可以使用多种方法例如
with open('example.txt','w')as file:
file.write('Hello,World!')
file.flush()
file.write
第 2 题的答案是:最多读取3个字节(二进制模式)或3个字符(文本模式),但不会跨行读取
第 3 题的答案是:3行字符串
第 4 题的答案是:每行末尾的 \n 会被保留,而 print(each) 默认会在输出末尾再加一个换行符
第 5 题的答案是:这个错误是因为 Python 将字符串中的 \U 当作 Unicode 转义字符(类似 \uXXXX 或 \UXXXXXXXX),但 \Users 不是合法的 Unicode 转义序列,所以会报错。
第 6 题的答案是:“'w' 模式是危险的,操作前务必确认文件可覆盖,路径可写!”
第 7 题的答案是:可以使用“a"模式打开,如果没有回自动创建
第 8 题的答案是:记录当前在文件中的读写位置
第 9 题的答案是:文件结束符,是计算机在读取文件时用来标识“数据已全部读取完毕”的一个标记。
第 10 题的答案是:tell()获取文件指针的位置
-------- 动动手 --------
请将第 0 题的代码写在下方:
with open('/Users/MaJun/Desktop/FishC.txt', 'r', encoding='utf-8') as f:
content = f.read()
extracted = content[9:15] # 第10~15个字符(索引9~14)
with open('FishD.txt', 'w', encoding='utf-8') as f:
f.write(extracted)
请将第 1 题的代码写在下方:
with open('/Users/MaJun/Desktop/FishC.txt', 'r+', encoding='utf-8') as f: # 'r+' 读写模式
content = f.read(15) # 只读取前15个字符
f.seek(0) # 将指针移回文件开头
f.truncate() # 清空文件内容
f.write(content) # 写入截取的内容
请将第 2 题的代码写在下方:
with open(__file__, 'r') as f:
print(f.read())
请将第 3 题的代码写在下方:from PIL import Image
def encode_image(input_img, secret_text, output_img):
# 打开图片并转换为 RGB 模式
img = Image.open(input_img).convert("RGB")
pixels = img.load()
width, height = img.size
# 将文本转为二进制
binary_text = ''.join(format(ord(c), '08b') for c in secret_text)
# 添加终止标记(可选)
binary_text += '1111111111111110' # 0xFFFE 作为结束符
# 检查图片是否能容纳数据
max_bits = width * height * 3 # 每个像素有 R,G,B 3个通道
if len(binary_text) > max_bits:
raise ValueError("图片太小,无法隐藏全部文本!")
# 嵌入数据(修改 LSB)
index = 0
for y in range(height):
for x in range(width):
r, g, b = pixels[x, y]
# 修改 R 通道的 LSB
if index < len(binary_text):
r = (r & 0xFE) | int(binary_text[index])
index += 1
# 修改 G 通道的 LSB
if index < len(binary_text):
g = (g & 0xFE) | int(binary_text[index])
index += 1
# 修改 B 通道的 LSB
if index < len(binary_text):
b = (b & 0xFE) | int(binary_text[index])
index += 1
pixels[x, y] = (r, g, b)
if index >= len(binary_text):
break
else:
continue
break
# 保存含隐藏信息的图片
img.save(output_img)
print(f"隐藏成功!输出图片:{output_img}")
# 使用示例
encode_image("input.png", "这是隐藏的秘密", "output.png") |
|