Python `.split()`如何节省多个空间?
例如,我有一个文件,如下所示:Python `.split()`如何节省多个空间?,python,Python,例如,我有一个文件,如下所示: while True: if test = 10: print(a, b) 现在我写了一个脚本来读取那个文件,然后…用随机颜色打印所有单词。这是我的密码: color = [color for color in range(91, 97)] with open(sys.argv[1], 'r') as f: for i in f.readlines(): for w in i.split():
while True:
if test = 10:
print(a, b)
现在我写了一个脚本来读取那个文件,然后…用随机颜色打印所有单词。这是我的密码:
color = [color for color in range(91, 97)]
with open(sys.argv[1], 'r') as f:
for i in f.readlines():
for w in i.split():
print('\033[{0}m{1}\033[{0};m'
.format(random.choice(color), w), end='')
print(' ', end='')
print()
当然,它起作用了。但是.split()
没有保存所有空格,因此输出没有缩进:
while True
if test = 10:
print(a, b)
现在我的问题是:如何节省空间?您可以基于
'
(空格,而不是None
,它被所有空格分割),并且仅在包含除空格以外的任何内容时才打印单词(要做到这一点,您只需检查w.strip()
是否为空字符串即可)。例如-
import random
import sys
color = [color for color in range(91, 97)]
with open(sys.argv[1], 'r') as f:
for i in f:
for w in i.rstrip().split(' '):
if w.strip():
print('\033[{0}m{1}\033[{0};m'
.format(random.choice(color), w), end='')
print(' ', end='')
print()
演示- 用OP的代码-
←[91mwhile←[91;m ←[92mTrue:←[92;m
←[96mif←[96;m ←[92mtest←[92;m ←[95m=←[95;m ←[95m10:←[95;m
←[92mprint(a,←[92;m ←[93mb)←[93;m
与上述建议的变化-
←[93mwhile←[93;m ←[93mTrue:←[93;m
←[94mif←[94;m ←[93mtest←[93;m ←[91m=←[91;m ←[94m10:←[94;m
←[91mprint(a,←[91;m ←[96mb)←[96;m