我有一个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"
这可能是什么问题?
答案 0 :(得分:2)
您必须有一个尾随换行符:
page_name.rstrip()
所以cmd应该是这样的:
cmd = "SET 'ABC.{}.IO_{}' [ FALSE ]\n".format(page_name.rstrip(),cell_text)