2015-01-18 19 views
0

У меня возникла проблема вызова одной процедуры python из другой. Это решение, скорее всего, не оправдывает «импорт».Запустить процедуру Python из другого файла Python

Проблема заключается в том, что один скрипт Python имеет активное соединение Bluetooth с устройством. Мне нужна информация из второго скрипта Python для отправки через порт Bluetooth первого скрипта на языке python.

По существу, файл первого питона (file1.py) имеет данный подпункт:

def output(string): 

     bluetoothsock.send(string) 

И второй файл должен быть в состоянии сделать что-то вроде этого:

file1.output("randomtext") 

И первый питона файл должен отправить строку «randomtext». Любые идеи были бы полезны!

File1.py пример:

from bluetooth import * 
try: 
    sock.connect((target_address, port)) 
    sock.settimeout(timeout) 
except: 
    print("Timeout",3) 


def output(text): 
    try: 
     sock.send(str(text)) 
     return ("Sent Successfully!",True) 
    except: 
     return("Error Sending",False) 
+0

Что случилось с 'import'? Конечно, файл Python должен быть правильно структурирован, если вы хотите его импортировать, но это не должно быть большой проблемой, если вы пишете чистый код. –

+0

Я использовал импорт и ничего не посылал. Я предполагаю, что, импортируя, он просто добавляет процедуру из файла в другой, что не даст доступа к порту Bluetooth. Я знаю, что сегмент Bluetooth работает как отправка информации в файл «file1.py». – user3147471

+0

Хорошо. Похоже, вы используете глобальную переменную 'bluetoothsock' в' file1.py'. Поэтому, чтобы использовать его из другого файла, вам может потребоваться немного изменить файл 'file1.py'. Будет намного легче дать рекомендации, если вы вставьте 'file1.py' в свой вопрос, чтобы нам не приходилось гадать, что происходит. Если он содержит много других вещей, помимо функций и классов, непосредственно связанных с открытием и использованием сокета Bluetooth, было бы неплохо просто опубликовать измененную версию 'file1.py', которая содержит только элементы Bluetooth. –

ответ

0

В file2.py, делает

import file1 
file1.output("randomtext") 

Интерпретатор будет выполнять код в блоке try:.. except: в file1.py в процессе импорта, так что розетка будет быть открытым & вы должны, тогда сможете отправлять данные с помощью file1.output().

Если это не работает, вставьте вывод, включая любое сообщение об ошибке в свой вопрос.

FWIW, код в file1.py использует некоторые сомнительные методы, например from bluetooth import * и try:.. except: без именованного исключения. Это может быть хорошей идеей, чтобы рассказать нам, из какого пакета подключается модуль Bluetooth.

Смежные вопросы