Python如何将语句和数组内容逐行写入文本文件?
解决方法
原代码的问题在于两点:一是将排序后的数组直接转成字符串会保留数组的格式(比如带方括号和逗号),二是所有内容都未添加换行符,导致writelines将它们连续写入同一行。可以通过以下两种方式修改:
方法一:构建带换行符的行列表
sorted_nums = mergeSort(lines) # 标题后添加换行符,确保单独成行 nlines = ['Sorted Numbers\n'] # 将每个数字转为字符串并追加换行符,添加到列表中 nlines += [f"{num}\n" for num in sorted_nums] with open('SortedNumbers.txt', 'w') as f: f.writelines(nlines)
方法二:拼接完整内容后一次性写入
sorted_nums = mergeSort(lines) # 拼接标题和所有数字,每个元素间用换行分隔 content = 'Sorted Numbers\n' + '\n'.join(map(str, sorted_nums)) + '\n' with open('SortedNumbers.txt', 'w') as f: f.write(content)
说明
- 两种方法都能实现标题单独一行、每个数字各占一行的效果。
- 如果
mergeSort(lines)返回的数组元素已经是字符串类型,可以去掉str()或f"{num}"中的类型转换,直接用num + '\n'即可。
内容的提问来源于stack exchange,提问作者thiccdan69
相关产品推荐
相关产品推荐

