27、用一个类封装文本文件。编写一个类,该类接受一个文件名并将相应文件中的数据作为文本读取。使该类具有三个方法:paragraph、line、word,每个方法都接受一个整数参数,这样如果 mywrapper 是这个类的一个实例,mywrapper.paragraph(0) 会输出文件的第一段,mywrapper.line(-2) 会输出文件中倒数第二行,mywrapper.word(3) 会输出文件中的第四个单词。
以下是实现该功能的Python代码:
class FileWrapper:
def __init__(self, filename):
with open(filename, 'r', encoding='utf-8') as file:
self.content = file.read()
self.lines = self.content.splitlines()
self.paragraphs = self.content.split('\n\n')
self.words = self.content.split()
def paragraph(self, index):
return self.paragraphs[index]
def line(self, index):
return self.lines[index]
def word(self, index):
return self.words[index]
你可以使用以下方式测试这个类:
# 假设你有一个名为 'test.txt' 的文件
mywrapper = FileWrapper('test.txt')
print(mywrapper.paragraph(0))
print(mywrapper.line(-2))
print(mywrapper.word(3))
这段代码定义了一个 FileWrapper 类,在初始化时读取文件内容,并将其拆分为段落、行和单词。 paragraph 、 line 和 word 方法分别用于根据索引获取相应的段落、行和单词。
28、如何复制一个列表对象?那字典呢?
要复制一个列表对象,最简单的方法是使用切片操作。例如,如果 myList 是一个列表,那么可以通过 newList = myList[:] 来复制它,这可以理解为“从开始到结束进行切片”。
对于字典,由于字典不支持切片操作,要复制一个字典 myDict ,可以使用如下代码:
newDict = {}
for key in myDict.keys():
newDict[key] = myDict[key]
此外,在 90% 的情况下,列表的 [:] 操作和字典的 .copy() 方法可以实现复制。
如果需要编写能处理任意类型参数的函数,有时需要使用 copy 模块。该模块提供了 copy 和 deepcopy 两个函数, copy 函数类似于列表的 [:] 切片操作或字典的 copy 方法。
29、编写一个程序来计算文件中的行数。
以下是一个可以计算文件行数的Python程序示例:
import sys
lines = sys.stdin.readlines()
lin

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



