变量的作用域
file_name = input('请输入需要打开文件')look_file_line = int(input('请输入需要查看显示该文件前几行'))
def open_file(file_name):
file = open(file_name)
#统计总共行数
line = 0
for each_line in file:
print('1')#测试用的
line += 1
if look_file_line > line:
print('文件行数只有',line,'行')
while line:
line_string = file.readline()
print(line_string)
line -= 1
print(line)#这行代码是我测试用的
file.close()
open_file(file_name)
为什么for 循环里面line += 1 没有加上去呢,还是原来的值,而且也不会报错 能加上啊,后面的while不是又递减到0了么
没打印出来内容,是因为已经打开读取了一次文档,指针已经指到文件末尾了吧
请输入需要打开文件1111.txt
请输入需要查看显示该文件前几行6
1
1
1
文件行数只有 3 行
0
本帖最后由 sunrise085 于 2020-9-22 18:55 编辑
我不知道你所说的 line+=1 没有加上去是什么意思。
我这里运行的时候,那个if语句后的print打印出来的line就是文件的行数
我不知道你的这个while循环是要干什么,你若是要打印显示file的内容,那应该先把光标移动到文件起始位置啊
你的for循环已经把光标移动到了文件的末尾,所以你的这个while不会读到任何内容,还有while内的print应该加上end参数,否则打印的每一行后面都会有一个空行,因为 readline读取到的一行内容末尾是有回车的,再加上print的回车就会出现一个空行
file_name = input('请输入需要打开文件')
look_file_line = int(input('请输入需要查看显示该文件前几行'))
def open_file(file_name):
file = open(file_name)
#统计总共行数
line = 0
for each_line in file:
print('1')#测试用的
line += 1
if look_file_line > line:
print('文件行数只有',line,'行')
file.seek(0)# 将文件光标从文件末尾移动到文件开头
while line:
line_string = file.readline()
print(line_string,end='')
line -= 1
print(line)#这行代码是我测试用的
file.close()
open_file(file_name)
页:
[1]