<p>我试图提取一个特定的行作为文件中的变量。在</p>
<p>这是我的内容测试.txt在</p>
<pre><code>#first set
Task Identification Number: 210CT1
Task title: Assignment 1
Weight: 25
fullMark: 100
Description: Program and design and complexity running time.
#second set
Task Identification Number: 210CT2
Task title: Assignment 2
Weight: 25
fullMark: 100
Description: Shortest Path Algorithm
#third set
Task Identification Number: 210CT3
Task title: Final Examination
Weight: 50
fullMark: 100
Description: Close Book Examination
</code></pre>
<p>这是我的密码</p>
^{pr2}$
<p>我想做的是:</p>
<pre><code>taskNumber is 210CT1
taskTitle is Assignment 1
weight is 25
fullMark is 100
desc is Program and design and complexity running time
and loop until the third set
</code></pre>
<p>但输出中出现错误</p>
<pre><code>ValueError: not enough values to unpack (expected 5, got 2)
</code></pre>
<p>SwiftsNamesake的回应</p>
<p>我试过你的密码。我仍然收到一个错误。在</p>
<pre><code>ValueError: too many values to unpack (expected 5)
</code></pre>
<p>这是我用你的代码做的尝试</p>
<pre><code> from itertools import zip_longest
def chunks(iterable, n, fillvalue=None):
args = [iter(iterable)] * n
return zip_longest(*args, fillvalue=fillvalue)
with open(home + '\\Desktop\\PADS Assignment\\210CT.txt', 'r') as mod:
for group in chunks(mod.readlines(), 5+2, fillvalue=''):
# Choose the item after the colon, excluding the extraneous rows
# that don't have one.
# You could probably find a more elegant way of achieving the same thing
l = [item.split(': ')[1].strip() for item in group if ':' in item]
taskNumber , taskTile , weight, fullMark , desc = l
print(taskNumber , taskTile , weight, fullMark , desc, sep='|')
</code></pre>