提问者:小点点

如何正确格式化我的Python结构?


这是读取输出

['multi_index', ' int64']
['multi_no', ' int64']
['name_class', ' string']
['name_event', ' string']
.....

我希望每一行都有这样的格式

('multi_index', pa.int64()),
('multi_no', pa.int64())

with open("out.txt") as file:
    with open("pravi.txt", 'w') as f2:
        for line in file:
            line = line.strip().split(":")
            f2.write('{} pa.{}'.format(line))

如何重写我的代码的最后一行?


共1个答案

匿名用户

我不会质疑为什么您需要这样的输出--看起来您是在用脚本生成代码,而您可能只是在运行代码,但是rReverse engineering“您当前的输出

['multi_index', ' int64']
['multi_no', ' int64']
['name_class', ' string']
['name_event', ' string']

,我觉得你的输入文件看起来像

multi_index: int64
multi_no: int64
name_class: string
name_event: string

如果是这样,你就快成功了:

import io

input_file = io.StringIO("""
multi_index: int64
multi_no: int64
name_class: string
name_event: string
""".strip())

for line in input_file:
    name, type = line.strip().split(': ', 1)
    print(f"('{name}', pa.{type}()),")

产出

('multi_index', pa.int64()),
('multi_no', pa.int64()),
('name_class', pa.string()),
('name_event', pa.string()),

因此,唯一真正的改变是使用':'进行拆分,从类型中删除这些空间,并正确地打印出来。