<p>你的陈述</p>
<pre><code>ouvrir = open("data2.txt")
lecture = ouvrir.read()
</code></pre>
<p>工作原理如下:<code>open("data2.txt")</code>返回一个
标签名为<code>ouvrir</code>,方法<code>.read()</code>返回一个字符串
与<code>"data2.txt"</code>的内容一致,并将其标记为
字符串为<code>lecture</code>。你知道吗</p>
<p>引用<code>lecture</code>时引用的是字符串而不是列表。。。你知道吗</p>
<p>解决问题的聪明方法是使用字符串方法:
<code>splitlines()</code>;它接受一个字符串并返回一个元素
通过将原始字符串拆分成新行获得的字符串。你知道吗</p>
<pre><code>lecture = ouvrir.read() # lecture is a string
lecture = lecture.splitlines() # lecture is now a list of strings (lines)
</code></pre>
<p>而这正是你需要坚持下去的。请注意
原始内容按换行分开,不换行(即“\n”
字符)在您要排序的行中出现。。。你知道吗</p>
<p>为了完成我的回答,我必须提到方法可以被链接起来</p>
<pre><code>lecture = ouvrir.read().splitlines()
</code></pre>
<h3>附录</h3>
<p>另一种可能性是不使用<code>liste()</code>函数(注意
<code>liste</code>是一个误导性的名称,因为函数返回的是字符串,而不是字符串
list…)并对<code>liste</code>返回的字符串进行后期处理-或者
更确切地说,其他的可能性,即使“应该有一个和”
最好只有一个明显的方法去做“。。。你知道吗</p>
<pre><code>(...)
if texte in choix:
message4 = liste(entree) ## m4 is a string of characters
message4 = message4.splitlines() ## m4 is a list of strings,
## one string <-> one line in file
message4 = sorted(message4) ## m4 contents are sorted now
for line in message4: ## let's do something for each line in m4
if line: ## that is, if the line contains something
print(line)
print('############################# alternative')
lines = sorted(l for l in liste(entree).splitlines() if l)
for line in lines: print(line)
print('############################# alternative')
for line in sorted(l for l in liste(entree).splitlines() if l): print(line)
print('############################# alternative')
print('\n'.join(sorted(l for l in liste(entree).splitlines() if l)))
break
else:
(...)
</code></pre>