为什么我在写入文件时出现不必要的换行符?

Why I'm getting unnecessary line break while writing to a file?

我有一个 excel 文件,我从中读取了一些数据,并根据一些逻辑将 excel 文件内容写入一个单独的文件以及一些额外的数据。 除了我得到的这个不必要的换行符外,我已经完成了所有工作。

我的程序:

from xlrd import open_workbook

def create_script():
    exl_file = open_workbook('DATA_SHEET.xls')
    data_sheet = exl_file.sheet_by_index(0)

    script_file.write("#Setting Inputs to FALSE values" + '\n\n')

    for row_idx in range(1, data_sheet.nrows):
        for col_idx in range(1):
            data_type = data_sheet.cell(row_idx,col_idx).value
            cell_text = data_sheet.cell(row_idx,col_idx+2).value
            if (data_type == 'Boolean'):
                if ('TRUE' not in cell_text) and (',' not in cell_text):
                    book.seek(0)
                    for line in book:
                        if('%' in line):
                            page_name = line
                        if(cell_text in line):
                            for src, target in replacement.iteritems():
                                page_name = page_name.replace(src, target)
                            cmd = "SET 'ABC." + page_name + ".IO_" + cell_text + "' [ FALSE ]" + "\n"
                            script_file.write(cmd)
                            break;  

replacement = {'%':'', ':modifiable':''}
script_file = open('script.txt', 'w')
book = open('lookupfile.txt', 'r')
create_script()
script_file.close()
book.close()

我得到的实际输出:

#Setting Inputs to FALSE values

SET 'ABC.Page_1
.IO_Variable_1' [ FALSE ]
SET 'ABC.Page_2
.IO_Variable_2' [ FALSE ]
SET 'ABC.Page_3
.IO_Variable_3' [ FALSE ]
SET 'ABC.Page_4
.IO_Variable_4' [ FALSE ]

预期输出:

#Setting Inputs to FALSE values

SET 'ABC.Page_1.IO_Variable_1' [ FALSE ]
SET 'ABC.Page_2.IO_Variable_2' [ FALSE ]
SET 'ABC.Page_3.IO_Variable_3' [ FALSE ]
SET 'ABC.Page_4.IO_Variable_4' [ FALSE ]

如您所见,我在 Page_1、Page_2 等之后换行。 我相信这一行有一些问题,但无法找出确切原因。

cmd = "SET 'ABC." + page_name + ".IO_" + cell_text + "' [ FALSE ]" + "\n"

这可能是什么问题?

您必须有一个尾随换行符:

page_name.rstrip()

所以 cmd 应该是这样的:

 cmd = "SET 'ABC.{}.IO_{}' [ FALSE ]\n".format(page_name.rstrip(),cell_text)