Создать пустой файл с помощью Python [дубликат]

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


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

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

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

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

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

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

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

  basedir = os.path.dirname (путь), если не os.path.exists (basedir): os.makedirs (basedir)  

51

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

Улучшите этот ответ
отредактировано 25 октября ’16 в 16:00
Дэйв
5,97055 золотых знаков3131 серебряный знак6363 бронзовых знака
ответил 02 авг. 15:00
  • 1
    Отличный момент. См. Также docs.python.org/3/library/os.html — poolie, 2 августа 2015 г., 15:37
  • 18
    это тоже только для unix. Не работает с окнами — Жан-Франсуа Фабр ♦ 13 августа 2018, 22:01
  • Это единственный способ, если вы абсолютно не хотите открывать файл, даже если его основным вариантом использования является создание файлов устройств и тому подобного, что, вероятно, причина, по которой в некоторых системах требуются привилегии root. По соображениям совместимости я всегда по возможности придерживался подхода open (). Close () . — Bachsau 29 сен. ’19 в 15:09
добавить комментарий |

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



Как создать пустой или пустой файл

  • Пользователи Windows
  • Пользователи MS-DOS и командной строки Windows.
  • Пользователи Linux и Unix

Пользователи Windows

Совет

Чтобы создать пустой файл (0 байт), это должен быть текстовый файл. Другие типы документов, такие как пустой .doc (файл текстового редактора) или пустой Excel (электронная таблица), работать не будут. Причина в том, что они содержат дополнительные данные, которые структурируют и идентифицируют файл, даже если вы не вводили никаких данных в документ.

Из Windows, щелкните правой кнопкой мыши в области, в которой вы хотите создать файл. Например, щелкните рабочий стол правой кнопкой мыши, чтобы создать новый текстовый файл на рабочем столе. В появившемся раскрывающемся меню выберите Создать и выберите Текстовый документ .

Командная строка MS-DOS и Windows пользователи

Используйте команду copy con для создания пустого файла, как показано ниже. ^ Z представляет собой нажатие Ctrl + Z на клавиатуре в командной строке. После нажатия этого ярлыка должно появиться сообщение 1 файл скопирован .

 copy con file.txt ^ Z 

Linux и Unix пользователи

Используйте сенсорную команду, как показано ниже, для создания пустого файла. В приведенном ниже примере создается файл «myexample».

 touch myexample 

Дополнительная информация

  • Для получения дополнительной информации и связанных ссылок см. определения пустых файлов и файлов.
  • Справка и поддержка компьютерных файлов.

Оцените статью
logicle.ru
Добавить комментарий