我使用Python在一个操作中将文本块写入文件:
open(file, 'w').write(text)
Run Code Online (Sandbox Code Playgroud)
如果脚本被中断,那么文件写入没有完成我想要没有文件而不是部分完整的文件.可以这样做吗?
rename(tmppath, path)
没有先拨打电话是否安全fsync(tmppath_fd)
?
我希望路径始终指向一个完整的文件.我主要关心的是Ext4.在所有未来的Linux内核版本中,rename()承诺是否安全?
Python中的一个用法示例:
def store_atomically(path, data):
tmppath = path + ".tmp"
output = open(tmppath, "wb")
output.write(data)
output.flush()
os.fsync(output.fileno()) # The needed fsync().
output.close()
os.rename(tmppath, path)
Run Code Online (Sandbox Code Playgroud) 我正在使用Beautiful Soup 4从HTML文件中提取文本,并且get_text()
可以轻松地仅提取文本,但是现在我试图将该文本写入纯文本文件,当我这样做时,我收到消息“ 416。” 这是我正在使用的代码:
from bs4 import BeautifulSoup
markup = open("example1.html")
soup = BeautifulSoup(markup)
f = open("example.txt", "w")
f.write(soup.get_text())
Run Code Online (Sandbox Code Playgroud)
控制台的输出是,416
但是没有任何内容写入文本文件。我哪里出问题了?