touch是一个Unix实用程序,它将文件的修改和访问时间设置为一天中的当前时间。如果该文件不存在,则使用默认权限创建该文件。
如何将其实现为Python函数?尽量跨平台和完整。
(目前谷歌的“python触摸文件”的结果不是很好,但指向os.utime。)
touch是一个Unix实用程序,它将文件的修改和访问时间设置为一天中的当前时间。如果该文件不存在,则使用默认权限创建该文件。
如何将其实现为Python函数?尽量跨平台和完整。
(目前谷歌的“python触摸文件”的结果不是很好,但指向os.utime。)
当前回答
Write_text()从pathlib。路径可以使用。
>>> from pathlib import Path
>>> Path('aa.txt').write_text("")
0
其他回答
还有一个用于触摸的python模块
>>> from touch import touch
>>> touch(file_name)
你可以用pip install touch安装它
def touch(fname):
if os.path.exists(fname):
os.utime(fname, None)
else:
open(fname, 'a').close()
Write_text()从pathlib。路径可以使用。
>>> from pathlib import Path
>>> Path('aa.txt').write_text("")
0
对于更低级的解决方案,可以使用
os.close(os.open("file.txt", os.O_CREAT))
为什么不试试呢?:
import os
def touch(fname):
try:
os.utime(fname, None)
except OSError:
open(fname, 'a').close()
我相信这消除了任何重要的竞争条件。如果文件不存在,则会抛出异常。
这里唯一可能的竞态条件是,文件是在调用open()之前,但在os.utime()之后创建的。但这并不重要,因为在这种情况下,修改时间将如预期的那样,因为它必须发生在调用touch()期间。