Почему питон не открывает файл
Помогите! Я не могу открыть файл PYTHON!
Существует много причин, по которым ваш файл PYTHON не может быть открыт на вашем компьютере. Если у вас есть файлы PYTHON, которые не открываются при двойном щелчке по нему, задайте себе следующие вопросы .
Установить необязательные продукты — File Magic (Solvusoft) | EULA | Privacy Policy | Terms | Uninstall
У меня есть правильная программа?
Если на вашем компьютере не установлена программа, совместимая с файлами PYTHON, вы не сможете ее открыть. Посмотрите, есть ли у вас одна из наиболее распространенных программ, связанных с файлами PYTHON, перечисленными ниже.
Какой тип файла?
Если вы не можете открыть файлы PYTHON, попробуйте выяснить тип файла. Это поможет вам найти нужную программу для ее открытия. Обычно файлы PYTHON считаются Необычные файлы. Однако вы можете искать тип файла, чтобы быть уверенным. Начните с правого щелчка на значке файла и нажмите «Свойства» («Дополнительная информация», если вы на Mac). Затем найдите тип файла в разделе «Тип файла» («Вид» на Mac).
Может ли разработчик помочь?
Когда вы не можете открыть файлы PYTHON, разработчик программного обеспечения может помочь. Разработчики для упомянутых выше программ выглядят следующим образом:
Программного обеспечения | разработчик |
---|---|
Python Script | Python Software Foundation |
Попробуйте связаться с одним из этих разработчиков, чтобы узнать, как открыть файл PYTHON.
Можно ли использовать универсальный просмотрщик файлов?
Универсальный просмотрщик файлов — это путь, когда у вас есть файлы PYTHON, которые не могут быть открыты какой-либо другой программой. Установите универсальный просмотрщик файлов, например File Magic (Загрузить), и посмотрите, откроет ли ваш файл PYTHON. Помните, что если ваш файл несовместим, универсальный просмотрщик файлов откроет его только в двоичном формате.
Рекомендуем
Sorry, your browser doesn’t support embedded videos.
Установить необязательные продукты — File Magic (Solvusoft) | EULA | Privacy Policy | Terms | Uninstall
Открывает все ваши файлы, как
МАГИЯ! 1
Установить необязательные продукты — File Magic (Solvusoft)
EULA | Privacy Policy | Terms | Uninstall
1 Типы файлов, которые не поддерживаются, могут быть открыты в двоичном формате.
Просмотр файлов
- 3D-файлы изображений
- Аудио файлы
- Резервные файлы
- Файлы САПР
- Сжатые файлы
- Дата файлы
- Файлы базы данных
- Файлы разработчиков
- Файлы образа диска
- Закодированные файлы
- Исполняемые файлы
- Файлы шрифтов
- Игровые файлы
- Файлы ГИС
- Разное
- Музыкальные файлы
- Файлы макета страницы
- Файлы плагинов
- Растровые файлы изображений
- Файлы настроек
- Файлы электронных таблиц
- Системные файлы
- Текстовые файлы
- Векторные изображения
- Видео файлы
- Веб-файлы
- Необычные файлы
Copyright 2023 FileMagic.com
Вы загружаете пробное программное обеспечение. Подписка на один год стоимостью $39,95 необходима для разблокировки всех функций приложения. Подписка обновляется автоматически по завершению (Узнать больше). Нажав на кнопку «Начать загрузку» и установив «Софт»», я подтверждаю, что прочитал(а) и согласен(на) с Пользовательским соглашением и Политикой конфиденциальности Solvusoft.
Почему не получается открыть текстовый файл при помощи Python
Почему не получается открыть текстовый файл при помощи Python, хотя этот файл находится в одной директории с .py файлом
Отслеживать
задан 29 ноя 2019 в 19:16
3 1 1 серебряный знак 3 3 бронзовых знака
Потому что ищется не там, где находится, а там, где запускается.
29 ноя 2019 в 19:26
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Файл ищется в текущем каталоге, то есть в каталоге, из которого был запущен скрипт.
Таким каталогом в Вашем случае является C:/Users/Irbis .
Так как в текущем каталоге нет файла words.txt , Вы получаете ошибку. Для того чтобы исправить это, Вы можете:
-
Изменить текущий каталог В консоли:
cd Irbis/Desktop/Python
open('C:/Users/Irbis/Desktop/Python/words.txt')
open('Desktop/Python/words.txt')
import os os.chdir('C:/Users/Irbis/Desktop/Python') open('words.txt')
Функция open. Чтение и запись текстовых файлов в Python
Большие объемы данных хранят не в списках или словарях, а в файлах и базах данных. В этом уроке изучим особенности работы с текстовыми файлами в Python. Такие файлы рассматриваются как содержащие символы и строки.
Бывают еще байтовые (бинарные) файлы, которые рассматриваются как потоки байтов. Побайтово считываются, например, файлы изображений. Работа с бинарными файлами несколько сложнее. Нередко их обрабатывают с помощью специальных модулей Python (pickle, struct).
Функция open
Связь с файлом на жестком диске выполняется с помощью встроенной в Python функции open() . Обычно ей передают один или два аргумента. Первый – имя файла или имя с адресом, если файл находится не в том каталоге, где находится сама программа. Второй аргумент – режим, в котором открывается файл.
Обычно используются режимы чтения ( ‘r’ ) и записи ( ‘w’ ). Если файл открыт в режиме чтения, то запись в него невозможна. Можно только считывать данные. Если файл открыт в режиме записи, то в него можно только записывать данные, считывать нельзя.
Если файл открывается в режиме ‘w’ , то все данные, которые в нем были до этого, стираются. Файл становится пустым. Если не надо удалять существующие в файле данные, тогда следует использовать вместо режима записи, режим дозаписи ( ‘a’ ).
Если файл отсутствует, то открытие его в режиме ‘w’ создаст новый файл. Бывают ситуации, когда надо гарантировано создать новый файл, избежав случайной перезаписи данных существующего. В этом случае вместо режима ‘w’ используется режим ‘x’ . В нем всегда создается новый файл для записи. Если указано имя существующего файла, то будет выброшено исключение. Потери данных в уже имеющемся файле не произойдет.
Если при вызове open() второй аргумент не указан, то файл открывается в режиме чтения как текстовый файл. Чтобы открыть файл как байтовый, дополнительно к букве режима чтения/записи добавляется символ ‘b’ . Буква ‘t’ обозначает текстовый файл. Поскольку это тип файла по умолчанию, то обычно ее не указывают.
Нельзя указывать только тип файла, то есть open(«имя_файла», ‘b’) есть ошибка, даже если файл открывается на чтение. Правильно – open(«имя_файла», ‘rb’) . Только текстовые файлы мы можем открыть командой open(«имя_файла») , потому что и ‘r’ и ‘t’ подразумеваются по-умолчанию.
Функция open() возвращает объект файлового типа. Его надо либо сразу связать с переменной, чтобы не потерять, либо сразу прочитать.
Чтение файла
С помощью файлового метода read() можно прочитать файл целиком или только определенное количество байт. Пусть у нас имеется файл data.txt с таким содержимым:
one - 1 - I two - 2 - II three - 3 - III four - 4 - IV five - 5 - V
Откроем его и почитаем:
>>> f1 = open(‘data.txt’) >>> f1.read(10) ‘one — 1 — ‘ >>> f1.read() ‘I\ntwo — 2 — II\nthree — 3 — III\nfour — 4 — IV\nfive — 5 — V\n’ >>> f1.read() » >>> type(f1.read())
Сначала считываются первые десять символов. Последующий вызов read() считывает весь оставшийся текст. После этого объект файлового типа f1 становится пустым.
Заметим, что метод read() возвращает строку, и что конец строки считывается как ‘\n’ .
Для того, чтобы читать файл построчно существует метод readline() :
>>> f1 = open('data.txt') >>> f1.readline() 'one - 1 - I\n' >>> f1.readline() 'two - 2 - II\n' >>> f1.readline() 'three - 3 — III\n'
Метод readlines() считывает сразу все строки и создает список:
>>> f1 = open('data.txt') >>> f1.readlines() ['one - 1 - I\n', 'two - 2 - II\n', 'three - 3 - III\n', 'four - 4 - IV\n', 'five - 5 - V\n']
Объект файлового типа относится к итераторам. Из таких объектов происходит последовательное извлечение элементов. Элементами в данном случае являются строки-линии файла. Поэтому считывать данные из файла можно сразу в цикле без использования методов чтения:
>>> for i in open('data.txt'): . print(i) . one - 1 - I two - 2 - II three - 3 - III four - 4 - IV five - 5 - V >>>
Здесь выводятся лишние пустые строки, потому что функция print() преобразует ‘\n’ в переход на новую строку. К этому добавляет свой переход на новую строку. Создадим список строк файла без ‘\n’ :
>>> nums = [] >>> for i in open('data.txt'): . nums.append(i[:-1]) . >>> nums ['one - 1 - I', 'two - 2 - II', 'three - 3 - III', 'four - 4 - IV', 'five - 5 - V']
Переменной i присваивается очередная строка файла. Мы берем ее срез от начала до последнего символа, не включая его. Следует иметь в виду, что ‘\n’ это один символ, а не два.
Запись в файл
Запись в файл выполняется с помощью методов write() и writelines() . Во второй можно передать структуру данных:
>>> l = ['tree', 'four'] >>> f2 = open('newdata.txt', 'w') >>> f2.write('one') 3 >>> f2.write(' two') 4 >>> f2.writelines(l)
Метод write() возвращает количество записанных символов.
Закрытие файла
После того как работа с файлом закончена, важно не забывать его закрыть, чтобы освободить место в памяти. Делается это с помощью файлового метода close() . Свойство файлового объекта closed позволяет проверить закрыт ли файл.
>>> f1.close() >>> f1.closed True >>> f2.closed False
Если файл открывается в заголовке цикла ( for i in open(‘fname’) ), то видимо интерпретатор его закрывает при завершении работы цикла или через какое-то время.
Практическая работа
- Создайте файл data.txt по образцу урока. Напишите программу, которая открывает этот файл на чтение, построчно считывает из него данные и записывает строки в другой файл ( dataRu.txt ), заменяя английские числительные русскими, которые содержатся в списке ( [«один», «два», «три», «четыре», «пять»] ), определенном до открытия файлов.
- Создайте файл nums.txt , содержащий несколько чисел, записанных через пробел. Напишите программу, которая подсчитывает и выводит на экран общую сумму чисел, хранящихся в этом файле.
Примеры решения и дополнительные уроки в pdf-версии курса
X Скрыть Наверх
Python. Введение в программирование
Работа с файлами в Python
Загрузить данные в программу из файла, выгрузить данные в файл, записывать историю обращений к программе в специальный файл — всё это очень частые задачи.
Как открыть файл
Чтобы открыть файл, используется функция open() :
my_file = open("myfile.txt", "r") file_contents = my_file.read() my_file.close()
- Функция open() принимает на вход 2 аргумента: путь до файла и права, с которыми его открыть. r — от read , т.е. мы просим открыть файл в режиме чтения.
- Функция open() возвращает не текст в файле, а сам файл. Файл как бы теперь открыт, как если вы бы щёлкнули по нему дважды левой клавишей.
- Метод файла .read() позволяет читать данные из файла. Строка с содержимым файла запишется в переменную file_contents .
- Метод .close закрывает файл.
Как сделать правильно
Закрывать файлы важно по двум причинам:
- Чтобы читать и писать в один и тот же файл из разных мест программы.
- Чтобы не превысить лимиты операционной системы. У неё есть ограничение на число одновременно открытых файлов. Ограничение легко превысить, если открывать файлы в цикле.
Однажды вы точно забудете закрыть файл. В Python есть специальная команда на такой случай — with :
with open("myfile.txt", "r") as my_file: file_contents = my_file.read() print(file_contents)
Выглядит немного непривычно, но суть простая: всё, что лежит “внутри” блока with (т.е. с отступом от него) — делается с открытым файлом. Как только файл не нужен, вы убираете отступ и файл сам закроется.
Открыть файл в папке
Допустим, рядом c вашим файлом main.py , из которого вы запускаете код, лежит папка files . В этой папке лежит файл file.txt :
. ├── files │ └── file.txt └── main.py
Вам очень нужно открыть файл file.txt , но он спрятался в папке, что же делать? Вот как его открыть:
with open("files/file.txt", "r") as my_file: file_contents = my_file.read() print(file_contents)
Ошибки кодировки
Бывает, что вы знаете, что файл в порядке, но Python читает его со странными символами: ������. Дело в кодировках: одни программы пользуют CP1251, другие ASCII, третьи UTF-8. К сожалению, программистам до сих пор не получилось окончательно перейти к какому-то одному варианту.
Чтобы открыть файл с нужной кодировкой, нужно передать функции open именованный аргумент encoding :
with open("myfile.txt", "r", encoding="ваша кодировка") as my_file: # .
Если вы не знаете кодировку вашего файла, на Хабре есть интересная статья с такой схемой:
Запись в файл
Для записи в файл нужно лишь указать режим w (write) и использовать не .read() , а .write() :
my_text = "Хочу записать эту строку в файл" with open("myfile.txt", "w") as my_file: my_file.write(my_text)
Альтернативные статьи
- Python World: работа с файлами
- Python Scripts: работа с файлами
Попробуйте бесплатные уроки по Python
Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.
Переходите на страницу учебных модулей «Девмана» и выбирайте тему.