Python调用read()函数执行读取操作无输出的问题咨询
Python调用
read()函数无输出的常见原因 - 文件指针已移动到文件末尾
这是最常见的触发原因。只要你此前已经执行过读取操作、或者对文件执行过写入操作,文件指针会默认停在操作结束的位置,当指针已经在文件末尾时,read()就会读取不到任何内容,返回空字符串。
需要重复读取时可调用seek(0)方法将指针移动到文件起始位置后再读取,示例代码如下:
with open("test.txt", "r", encoding="utf-8") as f: # 第一次读取,指针移动到文件末尾 content1 = f.read() # 指针回退到文件开头 f.seek(0) # 第二次读取可正常拿到内容 content2 = f.read()
- 未显式打印读取结果
如果是在.py脚本文件中运行代码,仅调用f.read()不会自动将读取结果输出到控制台,必须搭配print()方法才会看到输出:
# 错误写法,不会产生任何输出 f.read() # 正确写法 res = f.read() print(res)
- 文件打开模式不匹配
使用w(覆盖写)、a(追加写)模式打开文件时,本身没有读取权限;如果使用w+、r+等读写混合模式,写入操作完成后指针会停在写入内容的末尾,直接调用read()也会拿到空值,需要先回退指针再读取。 - 文件本身为空
如果目标文件本身没有存储任何内容,read()会默认返回空字符串,自然不会有输出。 - 读取内容为不可见字符
如果读取的是二进制文件、或者文件内容全为换行符、空字节、控制转义符等不可见内容,打印后看起来和无输出效果一致,可通过打印读取结果的长度判断是否真的未读取到内容:
print(len(f.read()))

内容的提问来源于stack exchange,提问作者Raviv007
相关产品推荐
相关产品推荐

