python 如何将_io.TextIOWrapper转换为字符串?

d5vmydt9  于 2022-12-28  发布在  Python
关注(0)|答案(3)|浏览(217)

我使用下面的代码读取文本格式,

f = open("document.txt", "r+", encoding='utf-8-sig')
f.read()

但是f的类型是_io.TextIOWrapper,但是我需要类型为string才能继续。
请帮助我将_io.TextIOWrapper转换为字符串。

am46iovg

am46iovg1#

您需要使用f.read()的输出。

string = f.read()

我想你的困惑是f只需要调用它的方法.read()就可以变成字符串,但事实并非如此,我认为内置函数甚至不可能做到这一点。
作为参考,_io.TextIOWrapper是一个打开的文本文件的类。请参见io.TextIOWrapper的文档。
顺便说一下,最佳实践是使用with-语句打开文件:

with open("document.txt", "r", encoding='utf-8-sig') as f:
    string = f.read()
3qpi33ja

3qpi33ja2#

这很好:

with open(file, 'r', encoding='utf-8-sig') as f:
    data = f.read()

这是不好的,

with open(file, 'r', encoding='utf-8-sig') as file:
    data = file.read()
vs3odd8k

vs3odd8k3#

这不是一个超级优雅的解决方案,但它对我很有效

def extractPath(innie):
    iggy = str(innie)

    getridofme ="<_io.TextIOWrapper name='"
    getridofmetoo ="' mode='r' encoding='UTF-8'>"

    iggy = iggy.replace(getridofme, "")
    iggy = iggy.replace(getridofmetoo, "")
    #iggy.trim()

    print(iggy)

    return iggy

相关问题