【问题标题】:Seeing if a file exists and printing it查看文件是否存在并打印
【发布时间】:2018-05-13 20:49:59
【问题描述】:

所以我正在尝试创建一种可以搜索文件并打印出来的方法。

def search():
    searched = input("... ")
    with open(searched + ".py", "r") as my_file:
        print(my_file)
search()

但控制台打印出 <_io.textiowrapper name="RandomPrac.py" mode="r" encoding="UTF-8"> 这是什么意思?

【问题讨论】:

  • 您打印的是文件对象而不是内容。试试print(my_file.read())
  • 这是文件处理程序对象,也许你需要my_file.read()来读取文件数据。

标签: python io


【解决方案1】:

您打印my_file 变量,它的类型为_io.TextIOWrapper。你真正需要的是

print(my_file.read())

【讨论】:

    【解决方案2】:

    正如Ali Yilmaz's answer 已经很好解释的那样,您打印的是文件对象,而不是该文件的内容。

    对于较小的文件,只需read() 文件即可将内容作为字符串获取,然后将其打印出来,就像他的回答一样。而且,由于您正在搜索 *.py 文件,因此几乎可以肯定您确实有小文件。

    但如果文件可能很大,最好在阅读时循环并打印每一行:

    for line in my_file:
        print(line, end='')
    

    或者,如果您想更简洁但可能过于聪明:

    print(*my_file, sep='')
    

    【讨论】:

      猜你喜欢
      • 2013-11-10
      • 2020-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多