程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了无法使用 Python 在临时文件中写入内容大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决无法使用 Python 在临时文件中写入内容?

开发过程中遇到无法使用 Python 在临时文件中写入内容的问题如何解决?下面主要结合日常开发的经验,给出你关于无法使用 Python 在临时文件中写入内容的解决方法建议,希望对你解决无法使用 Python 在临时文件中写入内容有所启发或帮助;

我想创建一个临时文件,在其中发布一些内容,上传它,然后希望它被自动删除。

在检查该方法是否有效后,我发现该文件为空:其中没有任何内容。

>>> with tempfile.namedTemporaryfile(suffix='.csv') as temp_certificate_file:
...     temp_certificate_file.write(bytes( "managed-graphdb,managed-graphdb-admins,{},compute-qus1,kubernetes:config:compute-qus1".format('aviral-june30-3','devel'),enCoding='utf-8'))
...     print(temp_certificate_file.Name)
...     import os
...     from shutil import copyfile
...     copyfile(temp_certificate_file.name,'aviral_tesTing.csv')
...
104
/var/folders/wp/w5ztm8tj0mq99fprhvys5f540000gr/T/tmpl0odthfz.csv
'aviral_tesTing.csv'
>>> ^D
(venv) ➜  neo4j git:(graph-storage/GRAPH-14982-setup-absorber-for-neo4j) cat aviral_tesTing.csv
(venv) ➜  neo4j git:(graph-storage/GRAPH-14982-setup-absorber-for-neo4j)

我的代码打开一个文件指针,在其中写入一些字节,然后复制该临时文件的文件,当 with 的范围结束时,该临时文件将被删除。在 sHell 中运行脚本后,我尝试 cat 复制的文件,但它为空。

只要文件处于活动状态,是否没有写入任何内容或复制命令失败? 如果这是真的,复制命令复制空文件因为写指针处于活动状态,那么上传命令也会因为同样的原因而失败?那么如何上传临时文件?

解决方法

在其他任何尝试通过不同的句柄(例如通过接收名称并打开它)使用它之前,您需要明确 flush NamedTemporaryFile。添加:

temp_certificate_file.flush()

在调用 copyfile 之前,因此用户模式缓冲区被刷新到操作系统,使新数据在文件独立打开时可见。

或者,对于这种特定情况,您自己打开另一个文件,返回到 NamedTemporaryFile 的开头,然后使用 copyfiLeobj 从您写入的同一个文件句柄执行复制( seek 可能会刷新文件,但即使没有刷新,也会使用您编写的相同句柄来确保您编写的缓冲数据可见):

>>> with tempfile.NamedTemporaryFile(suffix='.csv') as temp_certificate_file:
...     temp_certificate_file.write(bytes( "managed-graphdb,managed-graphdb-admins,{},compute-qus1,kubernetes:config:compute-qus1".format('aviral-june30-3','devel'),encoding='utf-8'))
...     print(temp_certificate_file.Name)
...     import os
...     from shutil import copyfiLeobj
...     temp_certificate_file.seek(0)  # Seek BACk to beginning
...     with open('aviral_tesTing.csv',"wb") as outfile:
...         copyfiLeobj(temp_certificate_file,outfilE)

大佬总结

以上是大佬教程为你收集整理的无法使用 Python 在临时文件中写入内容全部内容,希望文章能够帮你解决无法使用 Python 在临时文件中写入内容所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。