Создать пустой файл с помощью python

Я хотел бы создать файл с помощью пути x с помощью python. Я использовал os.system(y) где y = 'touch %s' % (x) . Я искал не-каталогическую версию os.mkdir , но я ничего не смог найти. Есть ли такой инструмент для создания файла без его открытия или с использованием системного или всплывающего / подпроцесса?

  • проверить, соответствует ли строка шаблону IP-адреса в python?
  • Как я могу проверить, что список имеет одно и только одно правдоподобное значение?
  • Конфигурация Remote_api с App Engine
  • изменить первую строку файла в python
  • Проблемы с Jinja2: TemplateNotFound: index.html
  • Загрузка большого файла происходит слишком медленно
  • Захват вывода на печать из общей библиотеки, вызванный из python с модулем ctypes
  • Объедините данные двух массивов, используя внутреннее соединение
  • 2 Solutions collect form web for “Создать пустой файл с помощью python”

    os.mknod("newfile.txt") создать файл без его открытия. Существует os.mknod("newfile.txt") ( но для него требуются привилегии root в OSX ). Системный вызов для создания файла фактически open() с флагом O_CREAT . Поэтому независимо от того, вы всегда будете открывать файл.

    Таким образом, самый простой способ просто создать файл без его усечения в случае его существования:

     open(x, 'a').close() 

    На самом деле вы могли бы опустить .close() поскольку GC GCControl refcounting закроет его сразу же после завершения инструкции open() но очистить его явно и полагаться на поведение, специфичное для CPython, тоже не очень хорошо.

    Если вы хотите, чтобы поведение touch (например, обновление mtime в случае, если файл существует):

     import os def touch(path): with open(path, 'a'): os.utime(path, None) 

    Вы можете расширить это, чтобы также создать любые каталоги в пути, которого нет:

     basedir = os.path.dirname(path) if not os.path.exists(basedir): os.makedirs(basedir) 

    Конечно, есть способ создавать файлы без открытия. Это так же просто, как вызов os.mknod("newfile.txt") . Единственным недостатком является то, что для этого вызова требуются привилегии root в OSX.

    Python - лучший язык программирования в мире.