mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 18:58:01 +00:00 
			
		
		
		
	 ad0590b978
			
		
	
	ad0590b978
	
	
	
		
			
			csv_sqlite.py : naming changes Signed-off-by: Chuck SmileyRekiere <chuck.smileyrekiere@candelatech.com>
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python3
 | |
| '''
 | |
| File: will search sub diretories for kpi.csv and place the data into an sqlite database
 | |
| Usage: csv_sqlite.py --path <path to directories to traverse> --database <name of database>
 | |
| '''
 | |
| 
 | |
| import sys
 | |
| if sys.version_info[0] != 3:
 | |
|     print("This script requires Python3")
 | |
|     exit
 | |
| import pandas as pd
 | |
| import sqlite3
 | |
| import argparse
 | |
| from  pathlib import Path
 | |
| 
 | |
| class csv_to_sqlite():
 | |
|     def __init__(self,
 | |
|                 _path = '.',
 | |
|                 _file = 'kpi.csv',
 | |
|                 _database = 'qa_db',
 | |
|                 _table = 'qa_table'):
 | |
|         self.path = _path
 | |
|         self.file = _file
 | |
|         self.database = _database
 | |
|         self.table = _table
 | |
| 
 | |
|     # information on sqlite database
 | |
|     # https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_sql.html
 | |
|     def store(self):
 | |
|         path = Path(self.path)
 | |
|         kpi_list = list(path.glob('**/{}'.format(self.file)))
 | |
| 
 | |
|         df = pd.DataFrame()
 | |
|         for kpi in kpi_list:
 | |
|             append_df = pd.read_csv(kpi, sep='\t')
 | |
|             df = df.append(append_df, ignore_index=True)
 | |
| 
 | |
|         print(self.database)
 | |
|         conn = sqlite3.connect(self.database) 
 | |
|         #data may be appended setting if_exists='append'
 | |
|         df.to_sql(self.table,conn,if_exists='replace')
 | |
|         conn.close()
 | |
| 
 | |
| def main():
 | |
| 
 | |
|     parser = argparse.ArgumentParser(
 | |
|         prog='csv_sqlite.py',
 | |
|         formatter_class=argparse.RawTextHelpFormatter,
 | |
|         epilog='''\
 | |
|         read kpi.csv into sqlit database
 | |
| 
 | |
|             ''',
 | |
|         description='''\
 | |
| File: will search path recursivly for kpi.csv and place into sqlite database
 | |
| Usage: csv_sqlite.py --path <path to directories to traverse> --database <name of database>
 | |
| 
 | |
|         ''')
 | |
|     parser.add_argument('--path', help='--path ./top directory path to kpi',required=True)
 | |
|     parser.add_argument('--file', help='--file kpi.csv',default='kpi.csv')
 | |
|     parser.add_argument('--database', help='--database qa_db',default='qa_db')
 | |
|     parser.add_argument('--table', help='--table qa_table',default='qa_table')
 | |
|     
 | |
|     args = parser.parse_args()
 | |
| 
 | |
|     __path = args.path
 | |
|     __file = args.file
 | |
|     __database = args.database
 | |
|     __table = args.table
 | |
| 
 | |
|     csv_sqlite = csv_to_sqlite(
 | |
|                 _path = __path,
 | |
|                 _file = __file,
 | |
|                 _database = __database,
 | |
|                 _table= __table)
 | |
| 
 | |
|     csv_sqlite.store()
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     main()     |