#想要读取一个文件的第三行
fp = open("e:\a.txt","r",encoding="utf-8")
n=1
for line in fp: #fp是句柄,为可迭代对象,所以能用for循环
if n==3:
print(line)
n+=1
fp.close()
升级小练习:请把它封装到一个函数里面
import os.path
def read_specific_line(file_path,line_number,encoding="utf-8"):
if not os.path.exists(file_path):
return None
if not isinstance(line_number,int):
return None
content = None
fp = open(file_path,"r",encoding=encoding)
n=1
for line in fp:
if n==line_number:
content = line
n+=1
fp.close()
return content
print(read_specific_line("e:\a.txt",3,"utf-8"))
#健壮版:如果编码格式不对,用try...except...
import os.path def read_specific_line(file_path,line_number,encoding="utf-8"): if not os.path.exists(file_path): return None if not isinstance(line_number,int): return None content = None try: fp = open(file_path,"r",encoding=encoding) n=1 for line in fp: if n==line_number: content = line fp.close() return content n+=1 fp.close() except: print("编码设定错误,请更换编码参数重试!") return content print(read_specific_line("e:\a.txt",3,"utf-8"))