你的代码中出现了一些问题,导致不能实现你想要的功能。让我来解释一下:
首先,你需要将输入的行数转换成整数类型,但是你没有进行转换。修改代码如下:
num1, num2 = map(int, input('请输入需要显示文件行数【格式如:13:21或 :21或 21:】:').split(':'))
其次,你在判断`num1`和`num2`是否为`None`时,使用了错误的语法。应该使用`is`判断两个变量是否为`None`。修改代码如下:
if num1 is None:
print('文件D:\\%s' % name + "从开始到第%s的内容如下:" % num2)
print(each_line, end='')
elif num2 is None:
print('文件D:\\%s' % name + "从第%s到结尾的内容如下:" % num1)
print(each_line, end='')
else:
print('文件D:\\%s' % name + "从第%s到第%s的内容如下:" % (num1, num2))
print(each_line, end='')
最后,你需要使用列表索引来实现根据行数范围打印文件内容。修改代码如下:
for i, each_line in enumerate(file):
# 判断行数是否在指定范围内
if num1 <= i+1 <= num2:
print(each_line, end='')
综上所述,完整的代码如下:
name = input('请输入要打开的文件:')
file = open('D:\\%s' % name, encoding='utf-8').readlines()
num1, num2 = map(int, input('请输入需要显示文件行数【格式如:13:21或 :21或 21:】:').split(':'))
for i, each_line in enumerate(file):
# 判断行数是否在指定范围内
if num1 <= i+1 <= num2:
print(each_line, end='')
希望能帮助到你!如果还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |