| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- import datetime
- import decimal
- import re
- import json
- def write_json(path, data):
- with open(path, 'w', encoding='utf-8') as f:
- json.dump(data, f, ensure_ascii=False, indent=2)
- def read_json(path):
- with open(path, 'r', encoding='utf-8') as f:
- data = json.load(f)
- return data
- def read_text(filename)->str:
- data = []
- with open(filename, 'r', encoding='utf-8') as file:
- for line in file.readlines():
- line = line.strip()
- data.append(line)
- return data
- def save_raw_text(filename, content):
- with open(filename, 'w', encoding='utf-8') as file:
- file.write(content)
- def read_map_file(path):
- data = {}
- with open(path, 'r', encoding='utf-8') as f:
- for line in f.readlines():
- line = line.strip().split('\t')
- data[line[0]] = line[1].split('、')
- data[line[0]].append(line[0])
- return data
- def save_json(target_file,js,indent=4):
- with open(target_file, 'w', encoding='utf-8') as f:
- json.dump(js, f, ensure_ascii=False, indent=indent)
- def is_email(string):
- pattern = r'^[\w\.-]+@[\w\.-]+\.\w+$'
- match = re.match(pattern, string)
- if match:
- return True
- else:
- return False
- def examples_to_str(examples: list) -> list[str]:
- """
- from examples to a list of str
- """
- values = examples
- for i in range(len(values)):
- if isinstance(values[i], datetime.date):
- values = [values[i]]
- break
- elif isinstance(values[i], datetime.datetime):
- values = [values[i]]
- break
- elif isinstance(values[i], decimal.Decimal):
- values[i] = str(float(values[i]))
- elif is_email(str(values[i])):
- values = []
- break
- elif 'http://' in str(values[i]) or 'https://' in str(values[i]):
- values = []
- break
- elif values[i] is not None and not isinstance(values[i], str):
- pass
- elif values[i] is not None and '.com' in values[i]:
- pass
- return [str(v) for v in values if v is not None and len(str(v)) > 0]
|