第一次发布在stackoverflow!我是编码的新手,但感兴趣。会喜欢我的剧本的一些见解和改进。我需要帮助:
正如标题所述,我正在编写一个脚本
我已经成功完成任务直到第三点(当然,在这个网站的帮助下!),但我需要最后一个帮助;用“spaces”填充字符串,每行填写40个字符的字符串。
以下是我目前的脚本:
import sys
file = open("read_me2.txt", "r+")
text = file.read()
def split_string (text, limit, sep= " "):
words = text.split()
if max(map(len,words)) > limit:
raise ValueError("limit is too small")
res = []
part = words[0]
others = words[1:]
for word in others:
if len(sep)+len(word) > limit-len(part):
res.append(part)
part = word
else:
part +=sep+word
if part:
res.append(part)
return res
print(split_string(text=text, limit=40))
以下是read_me2.txt包含的内容:
好的,这是一个测试,看看它是否可以将字符数减少到40,然后根据空格的存在将其分开,什么不是。我认为这超过40个字符。我们试试吗?
这就是我输出的内容:
['好吧,这是一个测试,看它是否可以削减','字符的数量为40然后','根据','空格和不存在的东西将它分开。我认为这是','超过40个字符。我们试试','它?']
如您所见,某些行的字符少于40个。那些应该附加空格直到第40个字符。非常感谢帮助和建议(如果有一个更清洁或更好的方式来做我的脚本)!
添加以下内容:
def pad(line, limit):
return line + " " * (limit-len(line))
def split_string (text, limit, sep= " "):
words = text.split()
if max(map(len,words)) > limit:
raise ValueError("limit is too small")
res = []
part = words[0]
others = words[1:]
for word in others:
if len(sep)+len(word) > limit-len(part):
res.append(part)
part = word
else:
part +=sep+word
if part:
res.append(part)
result = [pad(l, limit) for l in res]
return result