写入带有缩进的文本文件

我是 Python 新手,正在尝试编写一个 Python 代码,该代码将从 excel 文件中提取一些数据并使用提取的数据创建一个文本文件(用作 C 语言头文件)。我能够解析 excel 并提取相关数据,但我需要一些指导才能将这些数据以所需格式写入文本文件。


从 Excel 中提取的数据看起来像这样


parameter_name = "Colour"

parameter_value = ["0x01","0x02","0x06","0x10"] 

parameter_value_desc = ["Black","White","Red","Indigo"]

提取的数据将以这种格式写入文本文件(创建枚举声明)


typedef enum Colour{Black = 0x01, 

                    White = 0x02, 

                    Red = 0x06, 

                    Indigo = 0x10};

如何写入文本文件以使枚举的每个元素出现在另一个元素的下方,如上所示?


我只能写入文件,以便枚举元素并排放置,如下所示。


typedef enum Colour{Black = 0x01, White = 0x02, Red = 0x06, Indigo = 0x10};

但这是一个问题,当我们有更多的枚举元素时,文本将超过每行 80 个字符的限制。


这就是我的代码的外观


def write_to_file(parameter_value, parameter_value_desc, parameter_name):

    with open("out_file.h", "a") as f:

        print("typedef enum {}".format(parameter_name) + "{", file=f, end="")

        for value, desc in zip(parameter_value, parameter_value_desc):

            print("{} = 0x{}".format(str(desc), str(value)), file=f, end=",")

        print("};", file=f, end="\n")


蝴蝶不菲
浏览 184回答 3
3回答

青春有我

我是 Python 新手,正在尝试编写一个 Python 代码,该代码将从 excel 文件中提取一些数据并使用提取的数据创建一个文本文件(用作 C 语言头文件)。我能够解析 excel 并提取相关数据,但我需要一些指导才能将这些数据以所需格式写入文本文件。从 Excel 中提取的数据看起来像这样parameter_name = "Colour"parameter_value = ["0x01","0x02","0x06","0x10"] parameter_value_desc = ["Black","White","Red","Indigo"]提取的数据将以这种格式写入文本文件(创建枚举声明)typedef enum Colour{Black = 0x01,                     White = 0x02,                     Red = 0x06,                     Indigo = 0x10};如何写入文本文件以使枚举的每个元素出现在另一个元素的下方,如上所示?我只能写入文件,以便枚举元素并排放置,如下所示。typedef enum Colour{Black = 0x01, White = 0x02, Red = 0x06, Indigo = 0x10};但这是一个问题,当我们有更多的枚举元素时,文本将超过每行 80 个字符的限制。这就是我的代码的外观def write_to_file(parameter_value, parameter_value_desc, parameter_name):    with open("out_file.h", "a") as f:        print("typedef enum {}".format(parameter_name) + "{", file=f, end="")        for value, desc in zip(parameter_value, parameter_value_desc):            print("{} = 0x{}".format(str(desc), str(value)), file=f, end=",")        print("};", file=f, end="\n")

繁星点点滴滴

这是Daweo 答案的一个变体,主要是试图让-blockwith不那么忙:start = f'typedef enum {parameter_name}{{'sep = ',\n' + ' '*len(start)values = (f'{d} = {v}' for v, d in zip(parameter_value, parameter_value_desc))with open("out_file.h", "a") as f:    print(f'{start}{sep.join(values_fmtd)}}};', file=f)

呼唤远方

伪代码:for (i, value) in enumerate(values):    if i==0:        out = first_line    else:        out = " " * len(first_line)    out += value    if i == len(values) - 1:        out += last_line    else:        out += ",\n"    print(out)first_line在哪里typedef enum Colour{
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python