本身,“ t”不是打开文件的有效模式.
您可以将模式指定为rt.如果省略该模式,则默认为“ r”(以文本模式读取),这可能足以满足您的目的. (如果您的文件包含二进制数据,则可以在模式中添加“ b”.)
我也可以考虑使用with语句来编写:
def print_file1(filename):
with open(filename) as f:
for line in f:
print(line, end = "")
这样做的好处是您不必担心关闭文件-无论出于何种原因,它都会在with语句退出时自动发生.
更新资料
因此,您是在Spyder IDE中执行此代码的吗?成功运行脚本后,Spyder将显示:
runfile("/Users/kareemahokunlola/example.py", wdir="/Users/kareemahokunlola")
在控制台中.这就是您所看到的,因此您的脚本正在正常运行.
有两种可能的解释:
>您不是在您的内部调用函数print_file1()
脚本.脚本运行无错误,但未显示文件
因为没有调用print_file1().这是最有可能的
解释,因为您尝试打开原始代码
模式为“ t”的文件将引发异常,并且该异常
将被记录到控制台.但是不会显示该错误,因此很有可能实际上并未调用该函数.
>您正在调用print_file1(),但文件为空.在这种情况下
因为脚本已运行,将显示“ runfile()”消息
成功,但是没有看到任何其他内容,因为文件为空.
定义函数后,尝试添加对print_file1()的调用:
def print_file1(filename):
with open(filename) as f:
for line in f:
print(line, end = "")
# N.B. call the function...
print_file1("/etc/hosts")