python对文件操作采用的统一步骤是_测验7:文件和数据格式(第7周),格式化

测验7: 文件和数据格式化 (第7周)

单项选择题

1、Python对文件操作采用的统一步骤是:

A、打开—操作—关闭

B、打开—读取—写入—关闭

C、打开—读写—写入

D、操作—读取—写入

正确答案 A

打开—操作—关闭 是一个统一步骤,其中,关闭可以省略。

2、关于数据组织的维度,哪个选项的描述是错误的?

A、高维数据由键值对类型的数据构成,采用对象方式组织

B、数据组织存在维度,字典类型用于表示一维和二维数据

C、一维数据采用线性方式组织,对应于数学中的数组和集合等概念

D、二维数据采用表格方式组织,对应于数学中的矩阵

正确答案 B

字典用于表示高维数据,一般不用来表示一二维数据。

3、对于Python文件,以下描述正确的是:

A、同一个文件可以既采用文本方式打开,也可以采用二进制方式打开

B、根据不同类型的文件,打开方式只能是文本或者二进制中的一种

C、当文件以二进制文件方式打开时,读取按照字符串方式

D、当文件以文本方式打开时,读取按照字节流方式

正确答案 A

文件就在那里,二进制或文本方式打开只是对其不同的程序理解。

4、以下选项不是Python文件读操作的是:

A、readlines()

B、readline()

C、readtext()

D、read()

正确答案 C

没有readtext()方法

5、关于Python文件的‘+’打开模式,哪个选项的描述是正确的?

A、只读模式

B、追加写模式

C、与r/w/a/x一同使用,在原功能基础上增加同时读写功能

D、覆盖写模式

正确答案 C

'+'打开模式的精髓在于它能够同时赋予文件的读写权限。

6、二维列表ls=[[1,2,3], [4,5,6],[7,8,9]],哪个选项能获取其中元素5?

A、ls[-1][-1]

B、ls[-2][-1]

C、ls[4]

D、ls[1][1]

正确答案 D

这是二维切片的使用方式。

7、给定列表ls = [1, 2, 3, “1”, “2”, “3”],其元素包含2种数据类型,哪个选项是列表ls的数据组织维度?

A、一维数据

B、高维数据

C、二维数据

D、多维数据

正确答案 A

列表元素如果都是列表,其可能表示二维数据,例如:[[1,2], [3,4], [5,6]]。

如果列表元素不都是的将列表,则它表示一维数据。

8、关于文件关闭的close()方法,哪个选项的描述是正确的?

A、文件处理后可以不用close()方法关闭文件,程序退出时会默认关闭

B、如果文件是只读方式打开,仅在这种情况下可以不用close()方法关闭文件

C、文件处理遵循严格的“打开-操作-关闭”模式

D、文件处理结束之后,一定要用close()方法关闭文件

正确答案 A

打开文件后采用close()关闭文件是一个好习惯。如果不调用close(),当前Python程序完全运行退出时,该文件引用被释放,即程序退出时,相当于调用了close()。

9、以下选项对文件描述错误的是:

A、文件是程序的集合和抽象

B、文件是数据的集合和抽象

C、文件是存储在辅助存储器上的数据序列

D、文件可以包含任何内容

正确答案 A

函数或类是程序的集合和抽象,文件不是。

10、关于CSV文件的描述,哪个选项的描述是错误的?

A、CSV文件通过多种编码表示字符

B、整个CSV文件是一个二维数据

C、CSV文件格式是一种通用的、相对简单的文件格式,应用于程序之间转移表格数据

D、CSV文件的每一行是一维数据,可以使用Python中的列表类型表示

正确答案 A

一般来说,CSV文件都是文本文件,由相同编码字符组成。

文本的平均列数

打印输出附件文件的平均列数,计算方法如下:

(1)有效行指包含至少一个字符的行,不计算空行;

(2)每行的列数为其有效字符数;

(3)平均列数为有效行的列数平均值,采用四舍五入方式取整数进位。

输入输出示例

仅给出输出格式示例,非正确答案。

输入 输出

示例 1

123

【我的答案】

f= open('latex.log','r')

i= 0

chars = 0

for line in f.readlines():

if not (len(line) == 1 and line[-1]=='\n') :

i +=1

chars += len(line)-1

avg = round(chars/i,0)

avg = int(avg)

print(avg)

【参考代码】

f = open("latex.log")

s, c = 0,0

for line in f:

line = line.strip("\n")

if line == "":

continue

s += len(line)

c += 1

print(round(s/c))

# 请注意:for line in f获取的line包含每行最后的换行符(\n),所以,去掉该换行符进行统计。

CSV格式清洗与转换

附件是一个CSV格式文件,提取数据进行如下格式转换:

(1)按行进行倒序排列;

(2)每行数据倒序排列;

(3)使用分号(;)代替逗号(,)分割数据,无空格;

按照上述要求转换后将数据输出。

输入输出示例

以下是一个格式示例,不是最终结果。

输入 输出

1,2,3

4,5,6

7,8,9

9;8;7

6;5;4

3;2;1

【我的答案】

f = open('data.csv','r')

lines = f.readlines()

lines.reverse()

for line in lines:

line = line.replace('\n','')

line =line.replace(' ','')

t = line.split(",")

t.reverse()

print(";".join(t))

【参考代码】

f = open("data.csv")

ls = f.readlines()

ls = ls[::-1]

lt = []

for item in ls:

item = item.strip("\n")

item = item.replace(" ","")

lt = item.split(",")

lt = lt[::-1]

print(";".join(lt))

f.close()

# 注意:使用strip()方法去掉每行最后的回车,使用replace()去掉每行元素两侧的空格。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值