我有一个名为'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
在第二次昏迷后,我有4个国家,但是在'asin.txt'的第二行
out,Huawei2,DE.FR.IT
第二次昏迷后我有3个国家。我有这句话c1, c2, c3, c4 = c.split('.')
。
我如何制作每次在asin.txt中作为国家/地区切割 c 的程序?
因此,例如,在第一圈中,它在第二圈中裁减4件,在第3件上以第3件裁减....
答案 0 :(得分:2)
您可以将split
的结果存储为列表:
cList = c.split('.')
这样,c
总是被“剪切”为与asin.txt中的国家/地区相同的数量。