안녕하세요?


지난번의 시도 실패에 이어서 생각해본 결과, txt파일을 이용해서 데이터를 서로 다른 변수가 주고 받으면 된다는 생각을 하였습니다. 그래서 이번 포스팅에서는 먼저 주식 인공지능의 몸의 역할을 하는 pytrader에서 어떻게 해서 두뇌의 역할을 하는 RLTrader에 연락을 할 수 있는 txt파일을 만들 수 있는지에 대한 시도를 하였고, 그 과정에서 일어나는 좌우충돌을 포스팅으로 남기고자 합니다.



먼저 Qt designer에서 위 스크린샷과 같이 RLTrader를 지정이라는 버튼을 하나 추가해 주도록 해 봅니다.



다음으로는 pytrader에서 위 스크린샷처럼 버튼을 누르면 Selection_of_RLTrader라는 메소드가 실행이 될 수 있도록 지정을 해 줍니다.



다음으로는 클래스 변수를 하나 선언해 주는데, 당연 여기에서는 RLTrader의 main.py를 지정했으면, 그 값을 저장하기 위한 변수라고 할 수 있습니다.



이제 위 스크린샷과 같이 RLTrader를 지정하는 메소드를 실행시키면, 먼저 파일을 선택하기 위한 토글박스가 띄워 지도록 만들어 준 다음에, 그 변수의 값을 클래스 변수인 RLTraderPath3에 집어 넣도록 해 봅니다.



실제로 pytrader를 실행시켰을 경우에, 위 스크린샷처럼 제대로 선택을 위한 토글박스가 띄워지는 것을 볼 수 있었습니다. 그래서 이 작전은 성공이라는 생각이 들었습니다.




다음으로는 위 스크린샷과 같이 이번에는 RLTrader의 경로를 저장하기 위한 클래스 변수인 ParPathRLTrader라는 변수를 빈 공백상태로 선언해 주도록 합니다.



다음으로는 경로의 부모 디렉토리라고 해야 할까요? 파일을 제외한 newTestAI라는 폴더를 지정하기 위한 것으로 예상을 하고서 위 스크린샷에 붉은색 밑줄을 친 곳을 만들어 주었습니다.



다음으로는 txt파일을 open()이라는 함수를 사용하면 자동으로 만들어 준다고 하기에, 일단 갱신할 것 까지는 없기 때문에 w라고 쓰기 모드로 열어라 라는 명령을 내리도록 합니다.



그런데 어디가 잘못된 것인지 모르겠지만, 실행하는 과정에서 오류가 발생 중단되는 것을 볼 수 있었습니다.



그래서 위 스크린샷과 같이 지정을 하는 것으로 바꾸었는데, 먼저 os.path.split()이라는 함수는 지정된 경로를 파일명과 폴더명으로 나눈다고 합니다. 그렇게 해서 나오는 것이 일종의 array로 0번째가 바로 이 경로의 파일이 있는 폴더이고, 인덱스 1이 바로 파일명을 반환한다고 합니다. 그래서 이번에는 변수[0]을 주어서 아예 폴더의 경로만을 가지고 오도록 합니다.




그런데 어디가 잘못된 것인지 텍스트 파일이 생성된 곳이 제가 원하던 폴더의 상위 폴더에 생성이 되는 것을 볼 수 있었습니다.



거기다가 텍스트 파일이 생성이 된 것은 좋은데, 문제는 생성된 텍스트 파일의 안에는 데이터 베이스의 이름이 적혀있지 않아서 반쪽짜리에 불과하다는 단점이 있었습니다.



그래서 먼저 위 스크린샷과 같이 txt파일에 생성이 되는 코드의 위치를 위 스크린샷과 같이 바꾸어 주었습니다.



그런데 어떻게 된 것인지 이번에도 에러가 나는 것을 볼 수 있었습니다.



일단 제가 \를 하나 추가해 주는 것으로 제대로 원하는 이름의 텍스트 파일의 이름이 원하는 위치에서 생성이 되는 것을 볼 수 있기는 있었습니다.




그러나 내용은 제대로 들어가지 않은 것을 볼 수 있었습니다. 이래서야 상당히 곤란하다는 생각이 드는데, 아무튼 간에 이를 해결하기 위해서 다음의 작업에 들어가야 합니다.



먼저 위 스크린샷처럼 원래는 위쪽 줄에서 변수.close()라고 되어 있어서 열고나서 텍스트 파일을 닫은 상태에서 쓰라고 하니, 이런 에러가 발생한 것 이었습니다. 그래서 이번에는 close하라는 명령을 아래에 놔 두도록 합니다.



다음에는 위 스크린샷처럼 제대로 databasePath라는 이름의 txt파일이 생성이 되어 있는 것을 볼 수 있었으며....



다음으로는 텍스트 파일에서도 제대로 제가 원하는 대로 경로가....... 라기에는 지금 보니까 다소 에러가 있다는 생각이 듭니다. 왜냐하면 마지막에만 \ 되어 있어야 하는데, / 되었기 때문입니다. 이를 어떻게 수정해 보아야 겠다는 생각이 드는데, 일단 이번 포스팅에서는 여기까지만 하고, 다음 포스팅에서 이 에러를 수정하면서 동시에 어떻게 해서 RLTrader에서 읽을 수 있는지에 대해서 포스팅을 하겠습니다.

+ Recent posts