2015-01-18 4 views
0

문제가 다른 파이썬 프로 시저를 호출하고 있습니다. 이 솔루션은 "가져 오기"를 정당화하지 않을 가능성이 높습니다.다른 파이썬 파일에서 파이썬 프로 시저 실행

문제는 하나의 Python 스크립트에 장치에 대한 활성 Bluetooth 연결이 있다는 것입니다. 첫 번째 파이썬 스크립트의 블루투스 포트를 통해 전송되는 두 번째 파이썬 스크립트의 정보가 필요합니다.

기본적으로, 첫 번째 파이썬 파일 (file1.py)이 하위 있습니다

def output(string): 

     bluetoothsock.send(string) 

을 그리고 두 번째 파일은 다음과 같이 할 수 있어야한다 :

file1.output("randomtext") 

그리고 처음 파이썬을 파일은 "randomtext"문자열을 보내야합니다. 어떤 아이디어라도 도움이 될 것입니다!

File1.py 예 :

file2.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

'가져 오기'의 문제점은 무엇입니까? 물론 파이썬 파일을 가져 오려면 제대로 구성해야하지만 깨끗한 코드를 작성하면 큰 문제는 아닙니다. –

+0

가져 오기를 사용했지만 아무 것도 보내지 않았습니다. 나는 가져 오기를 통해 파일에서 다른 프로 시저로 프로 시저를 추가하고 Bluetooth 포트에 대한 액세스 권한을 부여하지 않는다고 가정합니다. 나는 Bluetooth 세그먼트가 "file1.py"내에서 정보를 보내는 것으로 작동한다는 것을 알고 있습니다. – user3147471

+0

확인. 'file1.py'에서 전역 변수'bluetoothsock'을 사용하고있는 것 같습니다. 그러므로 다른 파일에서 사용하려면'file1.py'를 약간 수정해야 할 수도 있습니다. 'file1.py'를 질문에 붙여 넣으면 우리가 무슨 일이 일어나는지 짐작할 필요가 없기 때문에 추천을하는 것이 훨씬 쉽습니다. 블루투스 소켓을 열고 열기를 직접 처리하는 함수와 클래스를 제외한 다른 많은 것들이 포함되어 있다면 블루투스만을 포함하는'file1.py'의 수정 된 버전을 게시하는 것이 좋습니다. –

답변

0

이 수행 통역사는 수입 과정에서 file1.pytry:.. except: 블록에서 코드를 실행, 그래서 소켓 것

import file1 
file1.output("randomtext") 

& 해야합니다 file1.output()을 사용하여 데이터를 보낼 수 있어야합니다.

그게 작동하지 않는다면 오류 메시지를 포함하여 출력을 붙여 넣으십시오.

FWIW의 코드 인 file1.py은 몇 가지 의심스러운 기술 (예 : from bluetooth import *try:.. except:)을 사용하며 이름이없는 예외는 없습니다. 블루투스 모듈이 제공하는 패키지를 알려주는 것이 좋습니다.

관련 문제