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

Как сохранить код в питоне

  • автор:

Запись в файл Python. Перезапись файла Python

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

Сегодня поговорим о создании и записи файлов.

Создание файла, его открытие и закрытие

Работа с текстовым файлом в Python начинается с момента вызова функции open. Она принимает в качестве атрибутов путь к объекту на ПК и режим обработки. Вы можете указать абсолютный путь (это адрес размещения на жёстком диске) или относительный (речь идёт о координатах относительно папки проекта).

Что касается режима обработки файла, то при его выборе учитывайте его назначение («r» — для чтения, «w» — для записи). Таблица ниже позволит вам ознакомиться с режимами доступа к файлу в Python:

1-20219-89defb.png

А вот пример простейшего взаимодействия с текстовым документом:

 
file = open("otus.txt", "w") file.write("hello world") file.close()

Здесь функция open принимает относительный путь, открывая его для записи. При этом, если в папке файл otus.txt будет отсутствовать, метод open создает его автоматически, после чего откроет для него нужный режим обработки.

Метод close закрывает файл, а это необходимо сделать, выполнив нужные вам действия с переменной file (иначе потеряете информацию). Впрочем, можно обойтись и без close, используя связку операторов with as (переменная, которая ссылается на файл, должна быть прописана после конструкции):

 
with open("otus.txt", "w") as file: file.write("hello world")

Метод write() для записи в файл в Python

В предыдущих примерах мы уже использовали метод write() . Он позволяет записывать любую строку в открытый файл. Помните, что строки в Python способны содержать не только текст, но и двоичные данные.

Запись в файл построчно выполняется посредством записи нужной вам строки с последующей записью \n — символа перевода строки.

Давайте ещё раз посмотрим на запись в файл с помощью метода write(). Синтаксис:

 
my_file.write(string);
 
my_file = open("otus.txt", "w") my_file.write("Люблю Python!\nЭто крутой язык!") my_file.close()

Код, представленный выше, создаст файл otus.txt , записав в него указанную строку.

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

 
lines = ["one", "two", "three"] with open(r"C:\otus.txt", "w") as file: for line in lines: file.write(line + '\n')

Этот код позволит создать небольшой массив lines, содержащий три строковых элемента: «one», «two» и «three». Благодаря функции open и связке операторов with as произойдёт открытие текстового файла otus.txt в корневом каталоге жёсткого диска C. Далее произойдёт запись всех элементов списка с помощью write. Символ \n обеспечит, чтобы каждая запись была выполнена с новой строки.

Как сохранять данные в питон?

Есть некая переменная, например user_data = input()
Надо её сохранить куда-то, чтобы при открытии программы заново, она уже была. Я делаю так:

with open('file.txt', 'w') as file: file.write(user_data)

И потом получаю данные так

user_data_list = [] with open('file.txt', 'r') as file: for line in file: user_data_list.append(line) user_data = user_data_list[x]

Но, думаю настоящие программисты делают по другому

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

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

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

Превращаем код на Python в исполняемый EXE-файл

Логотип компании Tproger

Как скомпилировать Python-код в файл EXE, чтобы защитить свой код или наглядно показать работу вашей программы.

Обычно код на Питон запускают двумя способами: через терминал или через текстовый редактор / IDE.

При этом стоит отметить, что файлик Python — это всего лишь скрипт, который сохранён в расширении .py. Да, это очевидно, но в этом и кроется проблема: иногда нужно скрыть исходный код, а поделиться программкой (в виде альфа-версии, например) очень хочется.

Одно из решений, которое закрывают боль с исходным кодом — это конвертация файла Python в исполняемый exe-файлик.

В этой статье мы научимся создавать «экзешники» при помощи двух библиотек: Pyinstaller and auto-py-to-exe.

Перед тем, как продолжить чтение статьи, скачайте этот репозиторий. Он здорово поможет вам понять процесс, если вы будете повторять все шаги вместе с нами.

Почему возникает потребность конвертировать Python-код в EXE

  1. Код могут украсть. Об этом мы уже говорили выше. Куда проще достать исходный код непосредственно из py-файла, чем из скомпилированного приложение. Py-файл достаточно просто открыть!
  2. Хочется поделиться кодом с другими юзерами. Дело не только в том, что ваш код могут украсть. Зачастую код содержит зависимости, которыми должен владеть другой юзер перед запуском вашего Python-кода. Но что, если он вообще ничего не смыслит в программировании? Не заставишь ведь его сперва выучить программирование, чтобы оценить ваше новое суперприложение. Проще создать исполняемый файл.
  3. Исполняемый файл можно запускать автоматически, по расписанию. Этот пункт актуален, если вы решили написать утилиту для вашего ПК, и эта утилита должна запускаться либо в определенное время, либо вместе с запуском ОС.

Конвертация кода Python в файл .exe

Для начала создадим скрипт на Python. В качестве примера мы используем открытый код бронирования жилья AitBnb в Нью-Йорке. Если у вас уже есть готовый код, можете сразу использовать его.

import pandas as pd from pandas.api.types import CategoricalDtype def perform_validation(filename:str): """ A function to validate inputs for NYC Airbnb Open data. """ path_to_data = "../.." data = pd.read_csv(f"") # Convert neighbourhood_group to type category neighbourhood_group_to_cat = CategoricalDtype( categories=["Manhattan", "Brooklyn", "Queens", "Bronx", "Staten Island"], ordered=False ) data["neighbourhood_group"] = data["neighbourhood_group"].astype(neighbourhood_group_to_cat) # Convert room_type to type category room_type_to_cat = CategoricalDtype( categories=["Entire home/apt", "Private room", "Shared room"], ordered=False ) data["room_type"] = data["room_type"].astype(room_type_to_cat) # Convert last_review to datetime data["last_review"] = pd.to_datetime(data["last_review"]) # Minimum nights a person can stay is one night assert data["minimum_nights"].min() >= 1 # Minimum number of reviews is 0 assert data["number_of_reviews"].min() >= 0 # Minimum number of reviews per month assert data["reviews_per_month"].min() >= 0.00 # Minimum amount of listings per host assert data["calculated_host_listings_count"].min() >= 1 # Number of days when listing is available for books # Could be 0 if tennant has long term booking assert data["availability_365"].min() >= 0 # Save validated data data.to_csv("validated_ab_nyc_2019.csv", index=False) if __name__ == "__main__": # User inputs filename filename = input("Enter filename: ") # Ensure it's a string if not filename.isalpha(): filename = str(filename) # Automated validation perform_validation(filename) 

Вы не забыли скачать библиотеки по ссылке по введении? Сделайте это сейчас.

Вот структура файлов на GitHub:

# Directory structure | AB_NYC_2019.csv | +---auto_py_to_exe | | requirements.txt | | validation.py +---pyinstaller | requirements.txt | validation.py 

Каждая из директорий должна обладать своей виртуальной средой. Убедитесь, что среды развёрнуты и в директории pyinstaller, и в auto-py-to-exe.

Сохраните ваш код и скопируйте его в обе директории.

Что делать в Pyinstaller

Ещё раз убедитесь, что виртуальная среда развёрнута. Да, мы настаиваем. Проверьте, установлены ли все зависимости между библиотеками и кодом.

Всё в порядке? Запускайте команду:

pyinstaller --onefile validation.py 

Процесс должен запуститься, и в конце консоль сообщит: «Completed successfully». Значит, всё прошло успешно. ?

Превращаем код на Python в исполняемый EXE-файл 1

В папке с библиотекой и кодом должны появиться две новые директории под названиями build и dist. В папке dist вы найдёте заветный exe-файл. Запустите его и проверьте работу приложения.

Что делать в Auto-py-to-exe

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

auto-py-to-exe 

Команда запустит графический интерфейс.

Превращаем код на Python в исполняемый EXE-файл 2

Запускаем компилятор Auto-py-to-exe // DataCamp

  1. В строчке «Script Location» нажмите «Browse» и выберите py-скрипт.
  2. В строчке «Onefile» выберите, скомпилируется код в единый файл или в папку. В папке будет содержаться exe-файл и все зависимости кода.
  3. В строчке «Console Window» выберите настройки отображения exe-приложения, когда оно будет запущено. Если выбрать «Console Based», запустится и программа, и консоль, в которой будут показаны процессы. Опция «Window Based» скрывает консоль.
  4. Нажмите кнопку «Convert .py to .exe». Готово!

Запускаем exe-файл

В обоих случаях, после компиляции и запуска exe-файла, тот запустит консоль и попросит вас ввести имя файла. Придумайте его и укажите расширение, в котором всё должно работать. К примеру, Tproger-is-the-best-it-media-in-the-world.csv . Тогда консоль закроется, а в папке появится заветный файлик с расширением .csv.

И всё — вы великолепны!

Сохранение, загрузка и повторный вызов работы в окне Python

В окне Python есть возможность для изучения и экспериментирования с Python в приложении ArcGIS Desktop . Во многих случаях полезно сохранять проделанную в окне Python работу в файл, который можно будет использовать в следующих сеансах.

Содержимое окна Python можно сохранить в файл Python или текстовом файе. Щелкните окно Python правой кнопкой мыши и выберите Сохранить как (Save As) , чтобы сохранить код либо в файл Python ( .py ), либо в текстовый файл ( .txt ). При сохранении в файл Python можно сохранить только код. При сохранении в текстовом файле все содержимое окна Python, включая код, возвращаемые сообщения и командную строку ( >>> ), будет записано в выходной файл.

Сохранить как в окне Python

При сохранении кода из окна Python в выходной файл будет записано только то, что в данный момент находится в окне Python . Удаленные фрагменты не будут записаны в файл.

Загрузка в окно Python

Окно Python является интерактивным интерпретатором, который удобен для быстрого выполнения инструментов геообработки или других команд Python. Однако код, который уже был написан и сохранен в автономный скрипт или в файл Python, также можно загрузить в окно Python, изменить и выполнить. Ниже показан простой скрипт, который просматривает класс объектов и поле и создает уникальный список значений поля. Это достаточно простой пример, но ввод вручную всех 13 его строк в окно Python может занять продолжительное время. Вместо этого щелкните правой кнопкой в окне Python и выберите Загрузить (Load) . Выбранный вами код (сохраненный в автономном скрипте или как файл Python) будет немедленно загружен в окно Python . После загрузки в окно Python можно отредактировать положение класса объектов, имя поля или синтаксис, затем выполнить код, поместив курсор в конце кода и нажав клавишу ENTER .

Создает список уникальных значений поля на основе класса объектов и имени поля.

import arcpy featureclass = "C:/data/county.gdb/hospital" field = "Zip" valueList = [] rows = arcpy.da.SearchCursor(featureclass, [field]) for row in rows: valueList.append(row[0]) uniqueSet = set(valueList) uniqueList = list(uniqueSet) uniqueList.sort() print(uniqueList) 

Повторный вызов кода Python

Строки кода, выполненные ранее, можно вызвать снова, используя клавиши стрелок вверх и вниз. Это позволяет вставить указанную строку в место текущего положения курсора. Строку кода можно отредактировать и выполнить, либо выполнить ее еще раз в неизменном виде.

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

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