Перейти к содержимому

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

  • автор:

Как лучше создать пустой файл в Python 3?

Какой способ лучше и почему? Какие еще есть способы?

Особенно интересует описание работы второго способа. Функция open создаст файловый объект, но т. к. он никуда не сохранен, интерпретатор его удалит? Т. е. тогда файл будет сразу доступен для чтения/редактирования/удаления, но уже другой команде/программе?

Python 3.4, Windows 8.1

  • Вопрос задан более трёх лет назад
  • 47727 просмотров

2 комментария

Оценить 2 комментария

lololololo @lololololo
Encoding лишнее для пустого файла
Станислав Карпов @stkrp Автор вопроса
lololololo: Да, согласен, из-за привычки указал.
Решения вопроса 1

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

Ответ написан более трёх лет назад
Нравится 2 2 комментария
Станислав Карпов @stkrp Автор вопроса

Это так просто, но почему-то абсолютно не думал об объединении этих двух операций. То, что я искал. Большое спасибо!

По поводу предположения. Попробовал вот так:

from time import sleep with open('1.txt', 'wt') as f: f.write('test_1') sleep(15) f.write('test_2')

И во время выполнения блокнотом открыл файл и записал ‘test’. По окончании работы скрипта в файле остается ‘test’. Причем, файл создался, но данные, введенные перед sleep(15) не сохранены в файле. Если файл не открывать в течение 15 секунд, то он будет содержать ‘test_1test_2’.

Python 3.4, Ubuntu 14.04

Ну то что файлы можно открыть из разных процессов еще не означает, что если писать в него из разных процессов, то все будет хорошо 🙂
>Причем, файл создался, но данные, введенные перед sleep(15) не >сохранены в файле.
Ну это как раз таки все нормально — есть такое понятие как буфферезированый ввод/вывод (см. flush)
То что если успеть переписать файл после открытия, нужно точно смотреть, что до как, но скорее всего тут проблема во внутренних указателях файла.

Создать пустой файл

, но выглядит это не очень читаемо. Зачем для создания открывать и закрывать сразу? Есть какие-нибудь другие варианты?

Отслеживать
задан 7 фев 2019 в 6:07
3 2 2 бронзовых знака

Странный вопрос. Можете и не закрывать файл, если он пустой. Ну или так еще можно: from io import FileIO; FileIO(file, ‘w’)

7 фев 2019 в 6:21
@mkkik мне надо просто создать его, ничего писать туда не надо. Почему можно не закрывать файл?
7 фев 2019 в 6:34
Потому что он пустой, данные вы непотеряете.
7 фев 2019 в 6:41

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

По аналогии с утилитой touch :

from pathlib import Path Path('/tmp/file').touch() 

Отслеживать
ответ дан 7 фев 2019 в 6:44
user207200 user207200
5,210 8 8 золотых знаков 23 23 серебряных знака 41 41 бронзовый знак
Спасибо, так выглядит лучше
7 фев 2019 в 6:48
Только touch не сделает файл пустым, если тот уже существует.
7 фев 2019 в 7:20

  • python
  • python-3.x
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Простой способ создать файл в python

Умение создавать файлы в Python открывает массу новых возможностей — например, позволяет хранить данные, сохраняя их согласованность для разных пользователей. Вместе с тем упрощает процесс управления данными, скрапинга контента и многое другое.

Важно и то, что в Python этот процесс очень простой.

Как создать файл в Python в три строки

С помощью следующего кода можно создать файл с названием BabyFile.txt и записать в него текст «Привет, файл!»:

 
my_file = open("BabyFile.txt", "w+")
my_file.write("Привет, файл!")
my_file.close()

В начале объявляется переменная my_file . После этого используются встроенные функции open и write для открытия и записи в файл. "w+" сообщает, что запись будет осуществляться в новый файл. Если он существует, то новое содержимое нужно записать поверх уже существующего. Если же вместо этого использовать параметр "w" , тогда файл будет создан только в том случае, если он не существовал до этого.

Важно заметить, что в конце файл всегда нужно закрывать, чтобы изменения сохранились.

Как записывать, добавляя новое содержимое

С созданием файла разобрались. Теперь можно узнать, как редактировать, удалять и даже копировать файлы.

Если нужно добавить новые данные в файл, тогда вместо "w+" нужно просто использовать параметр "a+" .

Как создать пустой файл в питон во время работы программы?

у меня задание написать простой файл менеджер, я должен вводить touch [fileName]
и файл должен создаваться как на linux но он создается только когда программа прекращает работу помогите исправить пожалуйста.

while True: command = input() command = " ".join(command.split()) command = command.split(" ") # print(command) if command[0] == "pwd": cur_path = os.getcwd() print(cur_path) elif command[0] == "cd": os.chdir(command[1]) elif command[0] == "touch": file = open(command[1],"w+") file.close()
  • Вопрос задан более года назад
  • 93 просмотра

1 комментарий

Простой 1 комментарий

Решения вопроса 1

Файл создается не тогда, когда программа завершает работу, а тогда когда отрабатывает метод close().
Это легко увидеть, если сделать маленький эксперимент:

import time from datetime import datetime print(datetime.now(),flush=True) file = open("ABC","w+") print(datetime.now(),flush=True) file.close() print(datetime.now(),flush=True) time.sleep(90)

Теперь смотрим скрин зкрана. Видно, что процесс не закончен (он уснул по sleep и проснется через полторы минуты, т.е. в 20: 37. , красный квадратик внизу справа подтверждает, что процесс активен ), а файл уже создан.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *