|
发表于 2024-4-7 23:24:28
|
显示全部楼层
你的代码中出现了一些问题,导致不能实现你想要的功能。让我来解释一下:
首先,你需要将输入的行数转换成整数类型,但是你没有进行转换。修改代码如下:
- 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 小助理,如未能正确解答您的问题,请继续追问。 |
|