大家帮忙看一道 python 题目,给个答案 谢谢!

2016-11-02 12:18:58 +08:00
 Tianny

编写一个程序, 在一个文本文件中查找长度大于 80 个字符的文本行. 从最接近 80 个字符的单词断行, 把剩余文件插入到下一行处. 程序执行完毕后, 应该没有超过 80 个字符的文本行了

2963 次点击
所在节点    Python
13 条回复
laoyuan
2016-11-02 12:33:00 +08:00
整个用空格连起来重新排
lrh3321
2016-11-02 12:45:15 +08:00
```
line = '12345 ' * 20 #

i,j = 0,0
while i < 80:
j = i
i = line.find(' ',j + 1)
print(line[:j])
```

从最接近 80 个字符的单词断行
neoblackcap
2016-11-02 13:17:37 +08:00
这样子格式化小心炸了
Aliencn
2016-11-02 14:10:22 +08:00
import random
line='1'
for a in range(100):
line='{} {}'.format(line,'1' * random.randint(0,10))
#print(line)

line_list=[]
a=80
while True:
if len(line) <= 80:
line_list.append(line)
break
if line[a] != ' ':
a-=1
else:
line_list.append(line[:a])
while line[a] == ' ':a+=1
line=line[a:]
a=80

for line in line_list:
print('{},len={}'.format(line,len(line)))

#从最接近 80 个字符的单词断行
#程序执行完毕后, 应该没有超过 80 个字符的文本行了
Aliencn
2016-11-02 14:13:16 +08:00
哎呀,发出去就格式乱了,你凑合看吧
thekoc
2016-11-02 17:21:33 +08:00
Tianny
2016-11-02 22:49:29 +08:00
@thekoc thx
Tianny
2016-11-02 22:49:41 +08:00
@Aliencn thx
Tianny
2016-11-02 22:49:50 +08:00
@lrh3321 thx
msg7086
2016-11-03 00:12:19 +08:00
从 str[80]开始向前找空格,找到以后切下来扔出去就行了。
ruoyu0088
2016-11-03 06:39:43 +08:00
看看 Python 的标准库 textwrap
Tianny
2016-11-03 12:24:32 +08:00
@ruoyu0088 thx 有库就简单多了~
qwer1234asdf
2016-11-03 12:27:17 +08:00
啊……这明明就是一个编辑器该干的事, gedit 设置,两分钟估计就解决了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/317372

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX