import random # 랜덤 선택을 위한 모듈
class CsvProcessor:
def __init__(self, file_name, dict_fields):
self.file_name = file_name
self.dict_fields = dict_fields.split(",") # 필드명은 쉼표로 분리
self.data_list = []
def process_csv(self):
try:
with open(self.file_name, "r") as csv_file:
for line in csv_file:
# 각 줄을 쉼표로 분리하여 열 데이터 추출
columns = line.strip().split(",")
# dict_fields를 기준으로 딕셔너리 생성
entry = {self.dict_fields[i]: columns[i] for i in range(len(self.dict_fields))}
# 숫자 변환 가능하면 정수로 변환
for key in entry:
if entry[key].isdigit():
entry[key] = int(entry[key])
self.data_list.append(entry)
except Exception as e:
print(f"Error while processing the file: {e}")
def get_random_entry(self):
# data_list에서 랜덤으로 하나의 딕셔너리를 반환
if not self.data_list:
print("Data list is empty. Please process the CSV file first.")
return None
return random.choice(self.data_list)
# 사용 예시
file_name = "./resources/data.csv" # CSV 파일 경로
dict_fields = "no,display,amount" # dict 항목명
processor = CsvProcessor(file_name, dict_fields)
processor.process_csv()
# 랜덤 딕셔너리 가져오기
random_entry = processor.get_random_entry()
print(random_entry)
댓글 없음:
댓글 쓰기