马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
文件打印任意行数from pathlib import Path
p = Path(input("请输入要打开的文件:"))
f = open(p,'r',encoding='utf-8')
lines = input("请输入需要显示的行数【格式如 13:21 或 :21 或 21:】:")
#起始位置&结束位置
if lines == ':':
start = 0
end = f.read().count('\n') + 1
print(f"文件{p}全文的内容如下:")
elif lines.startswith(':'):
start = 0
end = int(lines[1:])
print(f"文件{p}从开始到第{end}行的内容如下:")
elif lines.endswith(':'):
start = int(lines[:-2])
end = f.read().count('\n') + 1
print(f"文件{p}从第{start}行到末尾的内容如下:")
else:
_ = lines.find(':')
start = int(lines[:_])
end = int(lines[_:])
print(f"文件{p}从第{start}行到第{end}行的内容如下:")
#打印相应行数
count = 0
while count <= f.read().count('\n') + 1:
count += 1
x = f.readline()
if count in range(start,end+1):
print(x)
f.close()
为什么打印出来的是几个空行...?
你第一次调用 .read() 就会将文件指针移动到文件末尾
后续 在 .read() 或者 .readline() 时,因为文件指针在文件末尾那么你将读取不到任何文件内容
可以使用 .seek() 将文件指针设置为文件开始部分,参考代码:
from pathlib import Path
p = Path(input("请输入要打开的文件:"))
f = open(p,'r',encoding='utf-8')
lines = input("请输入需要显示的行数【格式如 13:21 或 :21 或 21:】:")
text = f.read()
#起始位置&结束位置
if lines == ':':
start = 0
end = text.count('\n') + 1
print(f"文件{p}全文的内容如下:")
elif lines.startswith(':'):
start = 0
end = int(lines[1:])
print(f"文件{p}从开始到第{end}行的内容如下:")
elif lines.endswith(':'):
start = int(lines[:-2])
end = text.count('\n') + 1
print(f"文件{p}从第{start}行到末尾的内容如下:")
else:
_ = lines.find(':')
start = int(lines[:_])
end = int(lines[_:])
print(f"文件{p}从第{start}行到第{end}行的内容如下:")
#打印相应行数
count = 0
f.seek(0)
while count <= text.count('\n') + 1:
count += 1
x = f.readline()
if count in range(start,end+1):
print(x)
f.close()
|