Как передать файл в функцию python
Перейти к содержимому

Как передать файл в функцию python

  • автор:

Как передать файл .txt в функцию в Python?

Меня просят создать функцию, которая принимает строковый аргумент, создает и возвращает кортеж, содержащий сведения о человеке, указанном в строке (например, имя, фамилия и зарплата). Строка с макетом: имя, фамилия, зарплата. Затем мне нужно создать еще одну функцию, которая принимает кортеж в качестве аргумента и печатает сведения о человеке в полях фиксированной ширины в одной строке с этим макетом: зарплата, имя, фамилия. Важно отметить, что строки должны быть взяты из файлового ввода, которое дает пользователь. Вот что я попробовал:

Мы будем благодарны за любую помощь, потому что я полностью потерялся. Заранее спасибо.

4 ответа

Давайте преобразуем эту задачу во многие маленькие и проще решать задачи.

Первая функция

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

Вторая функция

Здесь вы присоединяете кортеж обратно в строку. Прежде чем вы сможете присоединиться, вам нужно преобразовать каждый элемент в строку ( str(i) ).

Чтение из файла

Для чтения вы должны использовать с. Это гарантирует, что файл всегда закрыт, когда он больше не используется.

Открытие файла:

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

Разница между файлом и путем

Существует разница между путем к файлу ( path_to_file ) и фактически открытым файлом ( file ). Путь может быть введен пользователем, и вы должны использовать его, чтобы открыть файл. Пользователь не может ввести файловый объект.

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

Чтение из файла и вызов функции

Теперь последний шаг — собрать все вещи вместе. Поэтому сначала прочитайте из файла, а затем вызовите ранее созданные функции. Чтение зависит от вашей файловой структуры. Я просто предполагаю, что у вас есть в каждой строке данные для нового человека.

Если у вас есть какие-либо вопросы к части, пожалуйста, задавайте их в комментариях.

Редактировать

Корректировки на основе содержимого файла

Одна строка в файле выглядит следующим образом: Челси правый защитник Давиде Заппакоста 20 000 000

Вам нужно расширить кортежи:

Оригинал: first_name, last_name, salary

Новый: team, position, first_name, last_name, salary

Примечание: пока просто сохраняйте зарплату как строку s и не конвертируйте ее в int или float.

Оригинал: return first_name, last_name, int(salary)

Новый: return team, position, first_name, last_name, salary

Оригинал: string_person = » «.join(str(i) for i in person_tuple)

Новый: string_person = » «.join(person_tuple)

Ресурсы

Просто в верхней части моей головы, плавник является переменной, но вы передаете его в виде простой текстовой строки

Вам нужно написать fin = open(file, «wt») в вашем try утверждении. wt в конце означает, что вы пишете , используя текст (вы также можете писать в двоичном виде)

Позже вам нужно поставить my_str = open(fin, ‘r’) , поскольку fin является объектом, а не именем фактического файла.

Передача имени файла как параметра в программу на Python

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

insolor's user avatar

David's user avatar

При таком запуске
python script.py input.txt или таком
script.py input.txt

n1tr0xs's user avatar

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

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

Потоки. Передача файлов. Клиент-серверный чат¶

Потоки (thread) в Python позволяет одновременно запускать разные подпрограммы, таким образом становится возможно выполнять несколько подпрограмм в одно и то же время. thread — это отдельный поток выполнения.

На самом деле подпрограммы даже при использовании потоков не выполняются одновременно:

  1. Работа с потоками — это не работа с разными ядрами процесса, мы фактически работаем внутри того же процесса, что и без потоков, только дробим его на подзадачи, так что о более эффективном распределении ресурсов речи не идёт.

  2. В Python для обеспечения стабильности и снижения конфликтов работает специальный шлюз — Global Interpreter Lock (GIL). Он и контролирует потоки.

GIL переключает потоки по умолчанию раз в 5 миллисекунд, так что потоки работают не одновременно, а последовательно, постоянно сменяя друга.

Самая близкая идея работе потоков в Питоне — сеанс одновременной игры в шахматы, когда один шахматист играет с несколькими. Сеанс хоть и называется “одновременным”, но фактически шахматист обходит всех по очереди и делает свой ход в каждой партии.

Для работы с потоками используются модули _thread и threading (более новый).

Рассмотрим простой код для работы с потоками.:

Передача файлов¶

Настраиваем сокет, устанавливаем соединение.

На отправляющей стороне:

открываем файл на чтение в режиме байтового чтения ( ‘rb’ ).

построчно передаём файл принимающей стороне.

На принимающей стороне:

открываем файл на запись в режиме байтовой записи ( ‘wb’ ).

построчно пишем в файл всё, что получаем от передающей стороны.

Закрываем файлы и соединение.

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

Как передать изображение в функцию Python из JS eel?

Я использую модуль Python eel для создания простого приложения, которое принимает изображение через WEB интерфейс и сохраняет его в новом файле через Python. При передаче переменной с файлом в функцию Python, я получаю следующую ошибку

TypeError: expected str, bytes or os.PathLike object, not dict

Насколько я понимаю, Python воспринимает изображение как словарь, который нельзя сохранить в файл, так как функция open() принимает str, bytes or os.PathLike object

Вопрос в том, как правильно передавать изображение из JS в Python, чтобы с ним можно было дальше работать, например сохранять как новый файл?

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

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