鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[课后作业] 第053讲:永久存储(上)| 课后测试题及答案

  [复制链接]
发表于 2023-7-17 10:07:49 | 显示全部楼层
kankan
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 14:13:29 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-18 15:36:55 | 显示全部楼层
111
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-20 12:24:23 | 显示全部楼层
0. 不会呀
1. f.flush()
2. 读取前三个字符
3. 一行
4. 好问题,难道是因为print()自带换行符?比如 f = [1, 2]  print(f)就会打成
1,
2
这样?


5. \转义符,要么加r,要么\\
6. 注意文件名
7. 你自己看看讲了没嘛
8. 定位
9. end of file
10. f.tell()
0.

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

使用道具 举报

发表于 2023-7-20 17:57:32 | 显示全部楼层
# 问答题
# 第0题
  # 应该不会,会创建一个新的文件

# 第1题
  # 可以用文件的flush方法

# 第2题
  # 读取字符的个数为3,如果第一行的字符个数大于3,则读取第一行字符

# 第3题
  # 一行

# 第4题
  # 换行符起了两次作用

# 第5题
  # 不知道

# 第6题
  # 不要什么都不干就用close()关闭文件

# 第7题
  # 可以

# 第8题
  # 不知道

# 第9题
  # 不知道

# 第10题
  # 用文件的tell()方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-22 15:19:38 | 显示全部楼层
0.0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-23 09:47:14 | 显示全部楼层
target = open('target.zip','rb')
test = open('test.jpg','r+b')

test.read()
test.write(target.read())

test.close()
target.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-23 13:08:35 | 显示全部楼层
0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-24 11:30:00 | 显示全部楼层
0.不会,他会给你创建一个
1.ctrl + s
2.读取3个字符
3.一行,这玩意不会自己换行
4.for语句会自己换行,\n输出换了一行
5.路径指定的文件不存在?
6.该文件是空白的
7.不能
8.指向当前操作的字符位置
9.寻找错误
10.tell()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-24 16:00:50 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-24 17:30:21 | 显示全部楼层
# 0.不会,只会创建一个新的文件
# 1.有,使用flush()函数
# 2.从文件对象中读取第一行的3个字符
# 3.FishAFishBFishC,一行字符串
# 4.因为迭代的时候换行符也作为字符串的一部分
# 5.\U 被定义为,应该使用转义符
# 6.一定要保存文件,w以后文件会被清空
# 7.可以
# 8.记录位置
# 9.end of file
# 10.使用函数tell()

# f = open(r"C:\Users\Ray\Desktop\FishC.txt")
# a= f.readline()
# b=[]
# for i in range(0,16):
#     b.append(a[i])
# c = "".join(b)
# d = open(r"C:\Users\Ray\Desktop\FishD.txt","w")
# d.writelines(c)
# d.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-24 18:25:01 | 显示全部楼层
为啥'target.zip'报错说No such file or directory: 'target.zip'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-24 21:50:23 | 显示全部楼层
.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-25 16:03:01 | 显示全部楼层
0.用r模式打开不存在的文件会报错,w、a模式打开不存在的文件不会报错,会自动新建文件
1.可以使用文件对象调用flush()方法
2.表示读取三个字符
3.写入一行
4.
5.文件路径中出现转义字符
6.使用"w"模式打开文件会覆盖文件之前的内容
7.可以,使用"a"模式时,如果文件存在,则会打开追加,如果不存在,则会创建新文件

0.
file = r"F:\学习\小甲鱼\课后作业\053讲 永久存储(上)\文件\FishC.txt"
f = open(file, "r")
f.seek(10)
temp = f.read(5)
f1 = open(r"F:\学习\小甲鱼\课后作业\053讲 永久存储(上)\文件\FishD.txt", "w")
f1.write(temp)
f.close()
f1.close()

1.
file = r"F:\学习\小甲鱼\课后作业\053讲 永久存储(上)\文件\FishC.txt"
f = open(file,"r")
f.seek(15)
f.truncate()
f.close()

2.
f = open("open_myself.py", "r")
f.read()
f.close()

3.
file1 = r"F:\学习\小甲鱼\课后作业\053讲 永久存储(上)\hw\target.zip"
file2 = r"F:\学习\小甲鱼\课后作业\053讲 永久存储(上)\hw\test.jpg"
f1 = open(file1, "rb")
f2 = open(file2, "ab")
temp = f1.read()
f2.write(temp)
f1.close()
f2.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-25 16:44:09 | 显示全部楼层
0.   会创建
1.   f.flush()
3.   一行, 换行符需要手动添加
4.   f. writelines ()  会自动换行?
5.   反斜杠换成正斜杠,或者双反斜杠
6.   w为覆盖写模式,会清空所有的原文件内容
7.   可以a为追加写模式,如果文件存在则在源文件最后追加内容,不存在则会创建文件
8.   可以截取文件内容,确定文件读取的开始位置等
9.   不知道
10. f.tell()

0.
f_c = open('D:/下载/FishC - 副本.txt', mode='r', encoding='UTF-8')
f_c.seek(10,0)
txt_1 = f_c.read(5)
f_c.close()


f_d = open('D:/下载/FishD.txt', mode='wt', encoding='UTF-8')
f_d.write(str(txt_1))
f_d.close()

1.
f_c = open('D:/下载/FishC - 副本.txt', mode='rt+', encoding='UTF-8')
f_c.seek(0)
txt_1 = f_c.read(15)
print(txt_1)
f_c = open('D:/下载/FishC - 副本.txt', mode='wt+', encoding='UTF-8')
f_c.write(str(txt_1))
f_c.close()

2.
from pathlib import Path

f_lj = Path.cwd() / "open_myself.py"
f_jb = open(f_lj, mode = 'r', encoding='utf_8')

for i in f_jb:
    print(i)

3.
f_zip = open('D:/下载/target.zip', mode='rb')
f_jpg = open('D:/下载/test.jpg', mode='ab')

for i in f_zip:
    f_jpg.write(i)


f_zip.close()
f_jpg.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-25 19:32:11 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-28 13:59:56 | 显示全部楼层
0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-28 16:33:29 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-28 22:16:39 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-30 13:10:52 | 显示全部楼层
r'''
0. 如果尝试使用 open() 函数打开一个不存在的文件,是否会报错?
答: 不会哦, 这取决于使用什么模式打开, 如果用'r' 模式就会报错, 但是使用 'w' 模式就不会
'r' 模式表示打开文件并可以进行读取    'w' 模式表示创建文件

1. “在打开一个文件对象之后,大多数的文件操作都是在缓冲区里面进行的。因此,如果希望将文件内容保存,我们需要使用 close() 方法关闭文件对象,这样数据才能从缓冲区写入到文件中。”
那么请问大家,有没有办法在不关闭文件对象的情况下,进行内容的保存呢?
答: 我们可以使用 flush() 方法

2. 请问如果指定 readline(size=-1) 方法的 size 参数为 3, 那么表示的含义是什么?
答: size表示读取字符个数

3. 请问下面代码会在文件中写入几行字符串呢?
f = open("FishC.txt", "w")
f.writelines(["FishA", "FishB", "FishC"])
f.close()
答: 一行

4. 请问在课堂中的代码,为什么我们写入的时候只有一个换行符,但是使用 for 语句读取并打印出来却多了一个空白行呢?
f = open("FishC.txt", "w")
f.writelines(["I love FishC.", "I love my wife."])
f.close()
f = open("FishC.txt", "r")
for each in f:
     print(each)

I love FishC.
   
I love my wife.


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
答: 因为编码格式的原因

6. 使用 "w" 模式打开文件之前一定要注意什么?
答: 一定要注意该文件是否存在, 如果存在的话, 它会创建一个新的空文件覆盖之前老的, 老的文件就没了

7. 如果一个文件不存在,是否可以使用 "a" 模式将其打开?
答: 可以, 会创建一个新的文件

8. 文件指针的作用是什么?
答: 修改或读取某个位置的数据

9. 什么是 EOF?
答: end of the file,  文件末尾了

10. 如何知道文件指针当前指定的位置?
答: 使用 tell() 方法, 不过可能不准, 在一个全是英文的文件中, 1个字符占一个字节没有问题, 但是中英文混合的时候就不好用了, 因为
1个中文字符占3个字节, 所以返回的位置就不准
'''

def file_1():
    a = open('D:\\python_file\\FishC.txt', 'r')
    move_seek = a.seek(10)
    temp_txt = a.readline(5)
    new_a = open('D:\\python_file\\FishD.txt', 'w')
    new_a.write(temp_txt)
    a.close()
    new_a.close()


def file_2():
    f = open('D:\\python_file\\FishC.txt', 'r')
    temp_txt = f.readline(15)
    print(temp_txt)
    s = open('D:\\python_file\\FishC.txt', 'w')
    s.write(temp_txt)

def open_myself():
    f = open('D:\\project\\object\\python_task\\053.py', 'r', encoding = 'utf-8')
    while True:
        read_data = f.readline()
        print(read_data)
        if not read_data:
            break

def target():
    zip_data = open('D:\\python_file\\hw\\target.zip', 'r', encoding = 'gbk')
    photo_data = open('D:\\python_file\\hw\\test.jpg', 'ab')
    print(zip_data)
    print(photo_data)
    while True:
        read_zip_data = zip_data.readline()
        photo_data.write(read_zip_data)
        if not read_zip_data:
            break
target()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-12 19:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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