| 123456789101112131415161718192021222324252627282930313233343536 |
- import os
- import pandas as pd
- from log import PPLogger
- from setting import CSV_FILENAME, CSV_DIR
- from threading import Lock
- class WuBaStore:
- def __init__(self, method):
- """
- 持久化
- :param method: 持久化方式 :'csv',,,
- """
- self.method = method
- self.logger = PPLogger(name='store')
- self.logger.setup_logger()
- self.lock = Lock()
- def run(self, *args):
- if self.method == 'csv':
- self.to_csv(args[0])
- else:
- pass
- def to_csv(self, data_dict: dict, file_dir: str = CSV_DIR, file_name: str = CSV_FILENAME):
- if not os.path.exists(file_dir):
- os.mkdir(file_dir)
- try:
- file_path = os.path.join(file_dir, file_name)
- data = pd.DataFrame([data_dict])
- with self.lock:
- if not os.path.exists(file_path):
- data.to_csv(path_or_buf=file_path, index=False, header=True, encoding='utf8')
- else:
- data.to_csv(path_or_buf=file_path, index=False, header=False, encoding='utf8', mode='a')
- except Exception as e:
- self.logger.error(e)
|