thejiangxianshe 发表于 2023-7-17 10:07:49

kankan

sfqxx 发表于 2023-7-17 14:13:29

1

Celinnnn 发表于 2023-7-18 15:36:55

111

PP别吃了 发表于 2023-7-20 12:24:23

0. 不会呀
1. f.flush()
2. 读取前三个字符
3. 一行
4. 好问题,难道是因为print()自带换行符?比如 f = print(f)就会打成
1,
2
这样?


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

5.

小甲鱼的fan 发表于 2023-7-20 17:57:32

# 问答题
# 第0题
# 应该不会,会创建一个新的文件

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

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

# 第3题
# 一行

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

# 第5题
# 不知道

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

# 第7题
# 可以

# 第8题
# 不知道

# 第9题
# 不知道

# 第10题
# 用文件的tell()方法

Andy-fly 发表于 2023-7-22 15:19:38

0.0

hziyan 发表于 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()

源冰源 发表于 2023-7-23 13:08:35

0

YHJxiao 发表于 2023-7-24 11:30:00

0.不会,他会给你创建一个
1.ctrl + s
2.读取3个字符
3.一行,这玩意不会自己换行
4.for语句会自己换行,\n输出换了一行
5.路径指定的文件不存在?
6.该文件是空白的
7.不能
8.指向当前操作的字符位置
9.寻找错误
10.tell()

insistPython 发表于 2023-7-24 16:00:50

1

李胖 发表于 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)
# c = "".join(b)
# d = open(r"C:\Users\Ray\Desktop\FishD.txt","w")
# d.writelines(c)
# d.close()

insistPython 发表于 2023-7-24 18:25:01

为啥'target.zip'报错说No such file or directory: 'target.zip'

encyclopedia 发表于 2023-7-24 21:50:23

.

百苦 发表于 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()

yjr1124 发表于 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()

hfj2011 发表于 2023-7-25 19:32:11

1

2986745766 发表于 2023-7-28 13:59:56

0

ztx13363839373 发表于 2023-7-28 16:33:29

{:5_90:}

天雨流芳1 发表于 2023-7-28 22:16:39

1

菜许坤 发表于 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()
页: 15 16 17 18 19 20 21 22 23 24 [25] 26 27 28 29 30 31 32 33 34
查看完整版本: 第053讲:永久存储(上)| 课后测试题及答案