0

「asin.txt」というドキュメントがあります。

in,Huawei1,DE.FR.IT.UK
out,Huawei2,DE.FR.IT
out,Huawei3,FR
in,Huawei4,FR.IT
in,Huawei5,IT

このファイルを開いて OrderedDict を作成します。

from collections import OrderedDict
reader = csv.reader(open('asin.txt','r'),delimiter=',')
reader1 = csv.reader(open('asin.txt','r'),delimiter=',')
d = OrderedDict((row[0], row[1].strip()) for row in reader)
d1 = OrderedDict((row[1], row[2].strip()) for row in reader1)

「for」ループを作成するよりも:

from itertools import izip
for (a, b), (c, e) in izip(d.items(), d1.items()):
    """in the first time: a='in'; b='Huawei1'; c='Huawei1'; e='DE.FR.IT.UK'"""
    c1, c2, c3, c4 = c.split('.') # i'm cutting variable 'c'
    try:
       ...........

しかし、Pythonよりもエラーが発生します:

 c1, c2, c3, c4 = c.split('.')
 ValueError: need more than 3 values to unpack

「asin.txt」の最初の行にあるため、エラーが発生する理由はわかっています。

in,Huawei1,DE.FR.IT.UK

2回目の昏睡の後、私は4つの国とを持っていますが、「asin.txt」の2行目に

out,Huawei2,DE.FR.IT

2回目の昏睡の後、私には3つの国があります。そして、私はこの声明を持っていc1, c2, c3, c4 = c.split('.') ます。

asin.txtの国とまったく同じように毎回cをカットするプログラムを作成するにはどうすればよいですか?

たとえば、最初のラップでは、2 番目に 4 ピース、3 番目に 1 ピースにカットします....

4

1 に答える 1