시놀로지 상에서 파이썬 스크립트 작성관련 질문드립니다
import requests
url = "https://deepl-translator.p.rapidapi.com/translate"
payload = {
"text": "This is a example text for translation.",
"source": "EN",
"target": "ZH"
}
headers = {
"content-type": "application/json",
"X-RapidAPI-Key": "***************************************",
"X-RapidAPI-Host": "deepl-translator.p.rapidapi.com"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
DeepL이라고 AI번역 사이트가 있는데 이게 우리나라에서는 API 모듈 결제 지원을 안합니다 (8월 상륙예정이라고는 하네요)
찾아보니깐 rapidapi.com에서 api결제하면 사용할수 있다고 해서 하긴 했는데
리눅스 명령어 몇개 끄적여 본게 다인 놈이 이걸 해보자니 코딩의 코짜도 몰라서 적용하기가 참 힘드네요
해당 코드가 특정 텍스트를 입력하면 번역해주는 사이트에서 제시한 예시인데(***은 받은 api키 값 입니다)
이걸 응용해서 시놀로지 내의 특정 디렉토리의 특정파일(txt,docx 등)을 번역해서 번역된 파일을 얻고싶습니다
시놀로지에서 파이썬 스크립트 실행해서 하려고 하는데요
도와주시면 감사하겠습니다 ㅠ
특정폴더 주기적으로 확인해서 파일이 있으면 번역 후 파일이동하는 방법으로 하면 될것같습니다.
1 특정폴더 파일확인하는 부분
2 doc 파일 읽어오는 부분
3 번역하는 부분
4 파일 저장하는 부분
지금 몇가지 사이트 돌아보면서 문제가 될만한것이
response = requests.post(url, json=payload, headers=headers) 라는 부분에 선언 되어진 것 중에
json 이라는게 보이네요.. 파이선에서 import 를 json 을 해주는 글을 보게 되었네요. 아마도 빠진것 같아요.
headers 는 그냥 사용해도 되는것 같아보이기도 하고 음...
처음부분 import 하는곳에
import json
import requests
위에 추가를 한번 해보시길 바래요.. 프로그래밍이라는것이 내가 생각하는데로 만들 수 있지만 그 규칙을
내생각에 맞게 할 수 없이 누군가가 정해놓은 규칙을 무조건 지켜야 하는 불편함이 있더라고요 ㅠㅠ;;
어렵습니다.. ㅠㅠ;;
import requests
import os
import shutil
url = "https://deepl-translator.p.rapidapi.com/translate"
payload = {
"text": "",
"source": "EN",
"target": "ZH"
}
headers = {
"content-type": "application/json",
"X-RapidAPI-Key": "***************************************",
"X-RapidAPI-Host": "deepl-translator.p.rapidapi.com"
}
folder_path = "번역할_폴더의_경로" # 번역할 폴더의 경로를 지정합니다.
output_folder = "번역된_파일을_저장할_폴더의_경로" # 번역된 파일을 저장할 폴더의 경로를 지정합니다.
for filename in os.listdir(folder_path):
if filename.endswith(".txt"):
file_path = os.path.join(folder_path, filename)
with open(file_path, "r") as file:
payload["text"] = file.read()
response = requests.post(url, json=payload, headers=headers)
translated_text = response.json().get("translations")[0].get("text")
file_name = os.path.splitext(filename)[0] # 파일 이름과 확장자를 분리합니다.
translated_file_name = file_name + "_tr.txt" # 번역된 파일 이름에 접미사를 추가합니다.
translated_file_path = os.path.join(output_folder, translated_file_name)
with open(translated_file_path, "w") as file:
file.write(translated_text)
챗 GPT한테 이것저것 추가 해달라고 해서 만든 코드인데 실제로 작동 할지는 모르겠습니다만
특정 경로에 있는 TXT파일들을 전부 번역해서 저장 하는 코드입니다
text.txt 파일을 번역하면 text_tr.txt 라는 이름으로 설정된 폴더에 저장 되는 방식입니다만 정상 작동할지 모르겠습니다
다시한번 해보겠습니다
cmt alert