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

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

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.

  • Я не могу полностью выполнить функцию
  • Использование True, False и None в качестве возвращаемых значений в функциях python
  • Заменить новые строки в строке Unicode
  • Руководство по стилю White Spaces для Python
  • Использование подстановочных файлов расширения в os.listdir (путь)
  • Pythonic способ комбинировать два списка в чередующемся режиме?
  • Библиотека Python для преобразования между префиксами SI
  • Создание записи в хранилище данных приводит к зашифрованным свойствам при просмотре в браузере
  • Использование yield с несколькими ndb.get_multi_async
  • Почему автозаполнение PyCharm не работает для библиотек, которые я устанавливаю?
  • Как распечатать на принтере ОС по умолчанию на Python 3 (кросс-платформу)?
  •  
    Interesting Posts for Van-Lav

    pyqtgraph: синхронизировать масштабирование осей на разных участках

    Настройка формы изменения электронной почты Django

    Интерполяция данных из таблицы поиска

    Функция поиска последовательности python

    Публикация изображения с помощью провального API

    Как полностью удалить Python с Windows-машины?

    PyDev отображает неопределенную переменную из импорта для 1 из 2 варов

    Как мы должны вводить текстовую последовательность в keras с помощью pad_sequences?

    Как обновить подмножество MultiIndexed pandas DataFrame

    Преобразование смешанного формата .DAT в .CSV (или что-то еще)

    Как вы конвертируете Word Document в очень простой html в Python?

    Python re.findall ведет себя странно

    Python: несогласованность в том, как вы определяете функцию __setattr__?

    Параллельное приложение в python становится намного медленнее при использовании mpi, а не мультипроцессорного модуля

    pandas dataframe hexbin plot не имеет значений xlabel или оси

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