Python文件查询打印问题:控制台输出<_io.TextIOWrapper>含义咨询
问题解答
那个输出<_io.TextIOWrapper name='RandomPrac.py' mode='r' encoding='UTF-8'>其实是Python的文件对象本身,不是你想要的文件内容哦。
当你用open()函数打开文件时,它返回的并不是文件里的文本,而是一个用来操作文件的"包装器对象"——这个对象包含了文件的名称、打开模式、编码这些元信息,同时提供了读取内容的方法。你直接打印它,Python就会输出这个对象的默认字符串表示,也就是你看到的那串东西。
要打印文件内容,你需要调用这个文件对象的读取方法,比如:
修正后的代码示例
def search(): searched = input("请输入要查看的文件名(不带.py后缀):") try: with open(searched + ".py", "r") as my_file: # 读取整个文件的内容并打印 print(my_file.read()) # 如果想逐行读取并打印,可以用下面的代码替代上面的print: # for line in my_file: # print(line, end='') except FileNotFoundError: print(f"找不到文件 {searched}.py 哦!") search()
关键说明:
my_file.read():一次性读取文件的全部内容,返回一个字符串,打印这个字符串就能看到文件里的代码了。- 加上
try-except是为了处理文件不存在的情况,避免程序直接报错崩溃。 - 如果文件很大,逐行读取(
for line in my_file)会更节省内存。
这样修改后,你就能看到文件里的实际内容啦!
内容的提问来源于stack exchange,提问作者InvertedStateOfMind
相关产品推荐
相关产品推荐

