亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

寫入帶有縮進的文本文件

寫入帶有縮進的文本文件

蝴蝶不菲 2022-10-25 15:30:17
我是 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")
查看完整描述

3 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

我是 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")


查看完整回答
反對 回復 2022-10-25
?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

這是Daweo 答案的一個變體,主要是試圖讓-blockwith不那么忙:

start = f'typedef enum {parameter_name}{{'

sep = ',\n' + ' '*len(start)

values = (f'3qnv2us = {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)


查看完整回答
反對 回復 2022-10-25
?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

偽代碼:


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{


查看完整回答
反對 回復 2022-10-25
  • 3 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號