29讲作业-任意输入行数打印文件中的内容,打印不出来
请问各位大神,我这个代码最后会打印出很多个空行,行数是对的,但是内容是空白,怎么回事呀?ps:已检查文档编码格式,就是UTF-8
def printsome(file_name,a,b):
f = open(file_name,encoding = 'UTF-8')
listf = list(f)
count = 1
if a == '':
a = 1
if b == '':
b = len(listf)
a = int(a)
b = int(b)
print('文件%s的从第%s行到第%s行的内容如下:' % (file_name,a,b))
while count < a:
f.readline()
count += 1
while count <= b:
print(f.readline())
count += 1
f.close()
file_name = str(input('请输入要打开的文件:'))
input0 = str(input('请输入需要显示的行数【格式如13:21或:21或21:】'))
(a,b) = input0.split(':')
printsome(file_name,a,b) 你源代码列表化文件会将文件指针跳到后面了,要不然你就用seek跳回开头
方法一
f = open(file_name, encoding='UTF-8')
count = 1
if a == '':
a = 1
if b == '':
b = len(list(f)) # 方法一
方法二
f = open(file_name, encoding='UTF-8')
listf = list(f)
f.seek(0, 0)#方法二
count = 1
if a == '':
a = 1
if b == '':
b = len(listf) 都已经转到列表里面,就直接操作列表不好吗 楼上大佬说得对
你都列表化了,切片不香吗
def printsome(file_name, a, b):
f = open(file_name, encoding='UTF-8')
listf = list(f)
content = listf# intput返回的是str,int(a)-1是因为切片是左开右闭
for i in content:
print(i)
f.close()
file_name = str(input('请输入要打开的文件:'))
input0 = str(input('请输入需要显示的行数【格式如13:21或:21或21:】'))
(a, b) = input0.split(':')
printsome(file_name, a, b)
页:
[1]