53 lines
1.7 KiB
Python
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() |