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()