读取txt中的字段key,然后编号再输出

import pandas as pd
sep="|"

def read_key(dict_key, arr_fileld, idx=[]):
    if len(idx) == 0:
        return
    for index in idx:
        keys = arr_fileld[index].split(",")
        for key in keys:
            if key not in dict_key:
                dict_key[key] = len(dict_key) + 1

def replace_key(dict_key, arr_fileld, idx=[]):
    if len(idx) == 0:
        return ""
    res = []
    for i in range(len(arr_fileld)):
        if i in idx:
            keys = arr_fileld[i].split(",")
            ids = []
            for key in keys:
                ids.append(str(dict_key[key]))
            res.append(",".join(ids))
        else:
            res.append(arr_fileld[i])
    return "|".join(res)


def read_file(file_name,file_out,idx):

    with open(file_name,"r",encoding="utf-8") as f:
        dict_key = {}
        for line in f:
            read_key(dict_key, line.split(sep), idx)
    with open(file_name,"r",encoding="utf-8") as f:
        with open(file_out,"w",encoding="utf-8") as fout:
            for line in f:
                res = replace_key(dict_key,line.split(sep),idx)
                fout.write(res)


import json

with open("../conf/names.json", 'r') as f:
    names = json.load(f)
idx = []


for i,name in enumerate(names):
    if "room_id" in name or ("room" in name and "idx" in name):
        idx.append(i)


from datetime import datetime
cur_time1 = datetime.now()
read_file("../data/xxx", "../data/out",idx)
cur_time2 = datetime.now()

time_span = cur_time2 -cur_time1
print("time", time_span)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,可以为您提供相关的Python代码。首先,需要安装Python的MySQL连接器,可以使用如下命令进行安装: ``` pip install mysql-connector-python ``` 然后,您可以使用以下代码从txt文件读取表名与字段信息,并创建MySQL数据表: ``` import mysql.connector # 建立数据库连接 mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="yourdatabase" ) # 打开txt文件并读取内容 with open('table_info.txt', 'r') as f: lines = f.readlines() # 循环处理每一行内容 for line in lines: # 将每行内容按逗号分隔为表名和字段名 table_name, field_names = line.strip().split(',') # 创建数据表的SQL语句 create_table_sql = f"CREATE TABLE {table_name} ({field_names})" # 执行SQL语句 mycursor = mydb.cursor() mycursor.execute(create_table_sql) # 关闭数据库连接 mydb.close() ``` 在上述代码,需要将`yourusername`、`yourpassword`和`yourdatabase`替换为您的MySQL数据库的用户名、密码和数据库名。同时,需要将`table_info.txt`替换为您存放表名与字段信息的txt文件名。 在txt文件,每一行应该按如下格式存储表名与字段信息: ``` table_name,field1 datatype1,field2 datatype2,field3 datatype3,...... ``` 例如,如果您要创建一个名为`customers`的表,其包含`id`、`name`和`email`三个字段,可以将表名与字段信息保存在txt文件: ``` customers,id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255),email VARCHAR(255) ``` 然后运行Python代码即可创建名为`customers`的MySQL数据表。 希望这可以帮助到您!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值