我使用下面的代码读取文本格式,
f = open("document.txt", "r+", encoding='utf-8-sig') f.read()
但是f的类型是_io.TextIOWrapper,但是我需要类型为string才能继续。请帮助我将_io.TextIOWrapper转换为字符串。
f
_io.TextIOWrapper
am46iovg1#
您需要使用f.read()的输出。
f.read()
string = f.read()
我想你的困惑是f只需要调用它的方法.read()就可以变成字符串,但事实并非如此,我认为内置函数甚至不可能做到这一点。作为参考,_io.TextIOWrapper是一个打开的文本文件的类。请参见io.TextIOWrapper的文档。顺便说一下,最佳实践是使用with-语句打开文件:
.read()
io.TextIOWrapper
with
with open("document.txt", "r", encoding='utf-8-sig') as f: string = f.read()
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()
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
3条答案
按热度按时间am46iovg1#
您需要使用
f.read()
的输出。我想你的困惑是
f
只需要调用它的方法.read()
就可以变成字符串,但事实并非如此,我认为内置函数甚至不可能做到这一点。作为参考,
_io.TextIOWrapper
是一个打开的文本文件的类。请参见io.TextIOWrapper
的文档。顺便说一下,最佳实践是使用
with
-语句打开文件:3qpi33ja2#
这很好:
这是不好的,
vs3odd8k3#
这不是一个超级优雅的解决方案,但它对我很有效