Python 从tempfile创建数据帧

Python 从tempfile创建数据帧,python,pandas,Python,Pandas,尝试将临时文件加载到数据帧并引发错误。不确定如何将解析后的数据从临时文件获取到数据帧中以供以后使用 line = [] for x in readMe: line.append(" ".join(x.split())) with tempfile.NamedTemporaryFile() as temp: for i in line: " ".join(i.split(None)) temp.write("%s\n" % i) df =

尝试将临时文件加载到数据帧并引发错误。不确定如何将解析后的数据从临时文件获取到数据帧中以供以后使用

line = []
for x in readMe:
    line.append(" ".join(x.split()))
 with tempfile.NamedTemporaryFile() as temp:
    for i in line:
        " ".join(i.split(None))
        temp.write("%s\n" % i)
    df = pd.read_csv(temp.name, sep=' ', names=curves, skiprows=dataStart, header=None)
回溯(最近一次呼叫最后一次): 文件“C:/LAS Load.py”,第42行,在 ... 返回函数(*args,**kwargs)
TypeError:需要一个类似字节的对象,而不是“str”

我想您应该在temp.name前面加上“file://”。将
df
赋值取消缩进两个制表位后。
i.split(None)
很奇怪,它看起来就像
[i]
''。join([i])
没有副作用。可能是另一个复制粘贴问题?

您没有向我们展示
自述文件包含的内容,特别是它导致
i
具有的类型。如果可能的话,请在python3下运行这个程序好吗?如果没有,请向我们显示一些详细信息,如
类型(i)
,并执行一个简单的
临时写入('hello')
,这样文件描述符就可以写了。41号线有什么副作用还不清楚:

        " ".join(i.split(None))

“%s”%i实际上是采用str(i)。也许我们正在寻找的是
i.encode('utf8')
,或者传递一个。

您最近通过一个制表位取消了缩进,所以现在我们看到
df=
下。这样做的问题是,您确实希望首先使用
退出
,因此在尝试
读取该文件之前,它有机会关闭(
临时文件描述符)。我相信该临时文件将被删除,并且除with语句之外的任何内容都无法访问。或者,您可以传入打开的
temp
描述符,而不是
temp.name
。不确定您是否需要先查看它的前面。哦。我想我通常自己编“/tmp/foo”的名字。是的,你说得对,它将消失,无法访问。所以我关心的是
write()
是否被缓冲,我们是要刷新还是关闭?我考虑了这个路由。然而,在我到达这一步之前,程序出现了错误,它在第42行抛出了一个错误,即“temp.write”(%s\n“%I)”命令