单线程在python中写入文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单线程在python中写入文件相关的知识,希望对你有一定的参考价值。

如何在python中以更简单或单行的方式执行下面的写入文件任务?

#[PYTHON]
>>> log="/tmp/test_write.log"
>>> file = open(log, "a")
>>> file.write("x" * 10)
>>> file.write("
")
>>> file.close()

在python中有一些这样的(bash / shell)吗?

#[SHELL]
log="/tmp/test_write.log"
printf "`printf 'x%0.s' {1..10}`
" >> $log

注意: - 我在python中完全是noobie ...操作系统是RHEL 6/7和Python 3.3

答案

既然你需要调用writeclose,那么只写一行(不是完全疯狂的)就是用;来分隔两个命令,这很难读。

您可以使用with语句编写可读的双线程:

with open("/tmp/test_write.log", "a") as log:
    log.write("x"*10 + '
')

文件是上下文管理器,使用with语句可确保在退出块后关闭文件。

另一答案
with open('file', 'w') as pf:
    pf.write('contents
')

如果一条线很重要,那么使用起来非常好:

with open('file', 'w') as pf: pf.write('contents
')
另一答案

你也可以使用print来做到这一点

由于文件对象通常包含write()方法,因此您需要做的就是将文件对象传递给其参数。

写/附加到如下文件:

with open("/tmp/test_write.log", 'a') as f:
    print("x"*10, file=f)

以上是关于单线程在python中写入文件的主要内容,如果未能解决你的问题,请参考以下文章

python 队列单线程写入文本

在python中使用线程时如何保留文件写入顺序

fopen,fprintf,fclose的单线程? [关闭]

windows环境,多线程情况下,C语言向文件写入数据。

关于单线程写入文件测速

如何在 C++ 中的 unordered_map 的并发读取和锁定单线程写入之间交替