englishtokorea/find_missing_words.py
2025-05-28 14:26:49 +09:00

53 lines
1.7 KiB
Python

import pymysql
import pandas as pd
def fetch_words_from_db(connection):
with connection.cursor() as cursor:
sql = "SELECT word FROM ew_word"
cursor.execute(sql)
result = cursor.fetchall()
return [row['word'] for row in result]
def fetch_words_from_csv(file_path):
search_terms_df = pd.read_csv(file_path)
if 'search_term' not in search_terms_df.columns:
raise KeyError("CSV 파일에 'search_term' 열이 없습니다.")
return search_terms_df['search_term'].tolist()
def find_missing_words(db_words, csv_words):
return [word for word in csv_words if word not in db_words]
def main():
# MySQL 연결 설정
connection = pymysql.connect(
host="syye.net",
user="pythonUser",
password="Tjekdfl1324%^",
db="English_words",
charset='utf8mb4',
autocommit=True,
cursorclass=pymysql.cursors.DictCursor
)
try:
# 데이터베이스에서 단어 목록 가져오기
db_words = fetch_words_from_db(connection)
print(f"데이터베이스에서 {len(db_words)}개의 단어를 가져왔습니다.")
# CSV 파일에서 단어 목록 가져오기
csv_file_path = 'search_terms.csv'
csv_words = fetch_words_from_csv(csv_file_path)
print(f"CSV 파일에서 {len(csv_words)}개의 단어를 가져왔습니다.")
# 존재하지 않는 단어 찾기
missing_words = find_missing_words(db_words, csv_words)
print(f"데이터베이스에 존재하지 않는 단어 {len(missing_words)}개를 찾았습니다:")
for word in missing_words:
print(word)
finally:
connection.close()
print("Database connection closed")
if __name__ == '__main__':
main()