我想x用python 创建一个带路径的文件.我一直在用的os.system(y)地方y = 'touch %s' % (x).我找了一个非目录版本os.mkdir,但我找不到任何东西.是否有这样的工具来创建文件而不打开它,或使用系统或popen/subprocess?
Thi*_*ter 421
没有打开它就无法创建文件有os.mknod("newfile.txt")(但它需要OSX上的root权限).系统调用创建文件实际上是open()带有O_CREAT标志的.所以无论如何,你总是打开文件.
因此,简单地创建文件而不截断文件的最简单方法是:
open(x, 'a').close()
Run Code Online (Sandbox Code Playgroud)
实际上你可以省略,.close()因为CPython的refcounting GC将在open()语句结束后立即关闭它- 但是明确地做它并且依赖CPython特定的行为也不是很好.
如果你想要touch的行为(即在文件存在的情况下更新mtime):
import os
def touch(path):
with open(path, 'a'):
os.utime(path, None)
Run Code Online (Sandbox Code Playgroud)
您可以扩展它以在路径中创建不存在的任何目录:
basedir = os.path.dirname(path)
if not os.path.exists(basedir):
os.makedirs(basedir)
Run Code Online (Sandbox Code Playgroud)
Bac*_*sau 43
当然,有一种方法可以在不打开的情况下创建文件.它就像打电话一样简单os.mknod("newfile.txt").唯一的缺点是此调用需要OSX上的root权限.
| 归档时间: |
|
| 查看次数: |
324642 次 |
| 最近记录: |