将数组写入文本文件出现多余空格问题求助
解决数组写入文本文件时出现多余空格的问题
你遇到的array1输出有多余空格的问题,核心原因是从UI文本框获取的rssReference、rssEngine_*这类字符串本身带有前后空白字符,直接用" ".join()拼接时会保留这些空白,导致最终结果出现多余空格;而array2的文本框内容刚好没有多余空白,所以输出正常。
解决方法
处理每个文本框内容时,先去掉前后空白,再过滤掉可能的空字符串(避免用户未输入时产生多余空格),最后再拼接:
修改后的代码示例
# 先对array1的所有文本框内容做去空白处理 rssReference = self.ui.rss_reference_textbox.text().strip() rssEngine_1 = self.ui.rss_engine1_textbox.text().strip() rssEngine_2 = self.ui.rss_engine2_textbox.text().strip() rssEngine_3 = self.ui.rss_engine3_textbox.text().strip() # 过滤空字符串,防止未输入的情况导致多余空格 postProcess_RSS = [item for item in (rssReference, rssEngine_1, rssEngine_2, rssEngine_3) if item] rss = " ".join(postProcess_RSS) # array2也可以用同样方式优化,避免后续出现类似问题 combusterReference = self.ui.numComb_reference_textbox.text().strip() combusterEngine_1 = self.ui.numComb_engine1_textbox.text().strip() combusterEngine_2 = self.ui.numComb_engine2_textbox.text().strip() combusterEngine_3 = self.ui.numComb_engine3_textbox.text().strip() postProcess_Combustor = [item for item in (combusterReference, combusterEngine_1, combusterEngine_2, combusterEngine_3) if item] combustor = " ".join(postProcess_Combustor) with open(outputDir + '.txt', "w") as text_file: print(f'#', "\n"f'array1 = {rss}', "\n"f'array2 = {combustor}', file=text_file)
关键步骤说明
strip():移除字符串前后的所有空白字符(包括空格、制表符、换行符等),从根源上消除多余空白的来源- 列表推导式过滤空字符串:如果某个文本框未输入内容,
strip()后会得到空字符串,过滤后不会参与拼接,避免出现连续空格 - 最后用
" ".join()拼接,就能得到符合预期的0 0 0 0格式
内容的提问来源于stack exchange,提问作者juice
相关产品推荐
相关产品推荐

