# 文件

# 选择题

# 1. 题目

(多选)
关于CSV格式文件,下列说法正确的是(  )
A.每行表示一个一维数据,多行表示二维数据
B.必须要含列名,而且列名放置在文件第一行
C.纯文本格式,通过单一编码表示字符
D.以逗号分隔每列数据,列数据为空也要保留逗号

答案:ACD

选项 A:正确,CSV 文件的结构就是每行表示一个一维数据,多行表示二维数据。

选项 B:错误,CSV 文件不一定必须包含列名,是否包含列名取决于具体应用场景。

选项 C:正确,CSV 是纯文本格式,可以使用单一编码(如 UTF-8)表示字符。

选项 D:正确,CSV 文件使用逗号分隔每列数据,即使列数据为空也要保留逗号作为分隔符。


# 2. 题目

关于read,readline和readlines说法正确的是(  )
A.readlines 读取整个文件到一个迭代器以供我们遍历
B.read 读取整个文件
C.使用read,readline和readlines之前必须先用open打开文件,但不用显示指明打开模式‘r’
D.readline 读取下一行,使用生成器方法

答案:B

选项 A:错误,readlines () 返回的是列表而非迭代器。

选项 B:正确,read () 方法在不指定参数时会读取整个文件内容。

选项 C:错误,表述过于绝对,二进制文件需要显式指定 'r' 或 'rb' 模式。

选项 D:错误,readline () 不是生成器方法,它每次调用只读取一行内容。


# 3. 题目

以下选项中不是Python文件操作方法的是(  )
A.readline()
B.read()
C.readtext()
D.readlines()

答案:C

选项 A:readline () 是文件操作方法,用于读取一行内容。

选项 B:read () 是文件操作方法,用于读取文件内容。

选项 C:readtext () 不是标准的 Python 文件操作方法,正确的方法是 read ()。

选项 D:readlines () 是文件操作方法,用于读取所有行并返回列表。


# 判断题

# 1. 题目

以写模式打开的文件无法进读操作。  (   )

答案:对

解析:以写模式('w')打开的文件只能进行写操作,不能进行读操作。如果需要同时读写,可以使用 'r+'、'w+' 或 'a+' 模式。


# 2. 题目

二进制文件也可以使用记事本或其他文本编辑器打开,但是一般来说无法正常查看其中的内容。(   )

答案:对

解析:二进制文件可以用文本编辑器打开,但由于其内容是二进制数据,通常会显示为乱码,无法正常查看。


# 3. 题目

对字符串信息进行编码以后,必须使用同样的或者兼容的编码格式进行解码才能还原本来的信息。(   )

答案:对

解析:字符串编码和解码必须使用相同或兼容的编码格式,否则会出现乱码或解码错误。


# 4. 题目

文本文件是可以迭代的,可以使用for line in fp类似的语句遍历文件对象fp中的每一行。(  )

答案:对

解析:在 Python 中,文本文件对象是可迭代的,可以直接用 for 循环遍历文件的每一行。


# 5. 题目

使用pickle进行序列化得到的二进制文件使用struct也可以正确地进行反序列化。(   )

答案:错

解析:pickle 和 struct 是不同的序列化模块,它们使用不同的格式存储数据,不能互相反序列化。


# 6. 题目

使用内置函数open()且以”w”模式打开的文件,文件指针默认指向文件尾。(   )

答案:错

解析:以 'w' 模式打开文件时,文件指针默认指向文件开头,且会清空文件内容。


# 填空题

# 1. 题目

已知当前文件夹中有纯英文文本文件readme.txt,请填空完成功能把readme.txt文件中的所有内容复制到dst.txt中,
with open('readme.txt') as src, open('dst.txt', ______) as dst:
      dst.write(src.read())

答案:'w'

解析:open 函数使用 'w' 模式表示以写模式打开文件,这样可以将内容写入到 dst.txt 中。