【发布时间】:2021-02-01 12:12:20
【问题描述】:
我的输入是 .TXT 文件中的大量字符(超过 18,000 个字符),我需要在每两个字符后添加一个空格。如何编写代码以再次在 .TXT 文件中提供输出?
像这样;
- 输入:
123456789
- 输出:
12 34 56 78 9
【问题讨论】:
我的输入是 .TXT 文件中的大量字符(超过 18,000 个字符),我需要在每两个字符后添加一个空格。如何编写代码以再次在 .TXT 文件中提供输出?
像这样;
123456789
12 34 56 78 9
【问题讨论】:
试试下面的
txt = '123456789'
print(*[txt[x:x+2] for x in range(0, len(txt), 2)])
输出
'12 34 56 78 9'
【讨论】:
print 函数的 sep 参数,但 OP 对打印不感兴趣,而不是写入文件,file.write(*[txt[x:x+2] for x in range(0, len(txt), 2)]) 将不起作用...跨度>
这将产生12 34 56 78 9
t = '123456789'
' '.join(t[i:i+2] for i in range(0, len(t), 2))
如果文件非常大,您不会希望将其全部读入内存,而是读取一个字符块,并将它们写入输出句柄,然后循环。
包括读/写:
write_handle = open('./output.txt', 'w')
with open('./input.txt') as read_handle:
for line in read_handle:
write_handle.write(' '.join(line[i:i+2] for i in range(0, len(line), 2)))
write_handle.close()
【讨论】:
enumerate() 函数将在这里为您完成繁重的工作,我们需要做的就是遍历字符串并使用模来分割两个字符,下面是一个工作示例!
string_of_chars = "123456789101213141516171819"
spaced_chars = ""
for i, c in enumerate(string_of_chars):
if i % 2 == 1:
spaced_chars += c + " "
else:
spaced_chars += c
print(spaced_chars)
【讨论】: