import mysql.connector as mc
conn = mc.connect(
host = 'host url',
port = 포트번호,
user = '유저명',
password = '패스워드',
database = 'db명'
)
cursor = conn.cursor()
# file_column = ''
# for i in range(1,11):
# tempText = 'uploadfile' + str(i)
# file_column += tempText + ', ' if i < 10 else tempText
file_column = ', '.join([f'uploadfile{i}' for i in range(1, 11)])
# print(file_column)
query = f"SELECT {file_column} FROM tb_bbs"
cursor.execute(query)
db_file_names = []
rows = cursor.fetchall()
for row in rows:
for name in row:
if name and name.strip() != '':
db_file_names.append(name.strip())
# print(f'DB 파일 개수 : {len(db_file_names)}')
# print(db_file_names[:10])
cursor.close()
conn.close()
import os
base_dir = r'파일경로'
all_files = []
for root, dirs, files in os.walk(base_dir):
for filename in files:
all_files.append(filename.strip())
# print(f'전체 파일 개수 : {len(all_files)}')
# print(all_files[:10])
db_file_names_set = set(db_file_names)
all_files_set = set(all_files)
missing_files = db_file_names_set - all_files_set
print(f'db에 있는데 실존하지 않는 파일 개수 : {len(missing_files)}')
pip install mysql-connector-python
mysql connector를 먼저 설치합니다.
명령어가 안될 때
pip 명령어 대신
python -m pip install mysql-connector-python
또는
py -m pip install mysql-connector-python
둘 중 어느 쪽이든 동일하게 동작함.
파이썬에서 문자열 앞에 붙는 r, f, u, b 같은 것들은
**문자열 "접두사(prefix)"**라고 하고,
문자열이 어떻게 해석될지 결정하는 특별한 기능이야.
1. r'' : "Raw String"(원시 문자열)
- r은 "raw"의 약자야
- 문자열 안에 \(백슬래시)가 들어갈 때
이스케이프 처리를 하지 않고
있는 그대로 문자로 취급해줘!
2. f'' : "f-string"(포맷 문자열)
- f는 "formatted string"의 약자
- 문자열 안에서 변수나 표현식을 직접 집어넣을 수 있음
({변수명} 또는 {표현식})
기타
- u'': 유니코드 문자열 (파이썬3는 그냥 ''도 유니코드라 거의 안 씀)
- b'': 바이트 문자열 (이진데이터 처리할 때 씀)
'내가 보는 개발 공부 > Python' 카테고리의 다른 글
엑셀 데이터와 db 데이터 비교해서 업데이트하기 (0) | 2025.07.16 |
---|