【发布时间】:2019-07-15 15:02:05
【问题描述】:
我正在尝试将一些代码从我的 main 函数转移到一个名为 read 的函数,但不知何故循环中断并且它没有通过我的 csv 文件。 以下是 2 个脚本和 csv。
感谢您的建议和提示,因为学习曲线越来越陡峭
---下面的代码---
脚本 'NotinFunct' 将读取 csv 文件并返回此数据
脚本“InFunct”将读取相同的 csv 文件,但只返回一组数据
'NotinFunct' 是
# -*- coding: utf-8 -*-
import csv
FILE = 'C://shared//API//NADEV-Numbers_20190220-092956.csv'
NBS = {'5684', '7445477'}
NEW_NBS = {'56847', '74454773'}
def main():
fields_route = {'Pattern', 'CalledX', 'CalledPrefix', 'CallingX', 'CallingPrefix'}
for row in csv.DictReader(open(FILE)):
if row['Type'] == 'RoutePattern':
for nb in NBS:
for field in fields_route:
if nb in row[field]:
for new in NEW_NBS:
if nb in new:
rp = row['Pattern']
pt = row['Partition']
newrp = row['Pattern'].replace(nb, new)
if row['CalledX'] == 'None':
cedp = row['CalledX'].replace('None', '')
else:
cedp = row['CalledX'].replace(nb, new)
if row['CalledPrefix'] == 'None':
pced = row['CalledPrefix'].replace('None', '')
else:
pced = row['CalledPrefix'].replace(nb, new)
if row['CallingX'] == 'None':
cingp = row['CallingX'].replace('None', '')
else:
cingp = row['CallingX'].replace(nb, new)
if row['CallingPrefix'] == 'None':
pcing = row['CallingPrefix'].replace('None', '')
else:
pcing = row['CallingPrefix'].replace(nb, new)
print(rp)
print(pt)
print(newrp)
print(cedp)
print(pced)
print(cingp)
print(pcing)
print('################')
if __name__ == '__main__':
main()
'InFunct' 是
# -*- coding: utf-8 -*-
import csv
FILE = 'C://shared//API//NADEV-Numbers_20190220-092956.csv'
NBS = {'5684', '7445477'}
NEW_NBS = {'56847', '74454773'}
def read():
fields_route = {'Pattern', 'CalledX', 'CalledPrefix', 'CallingX', 'CallingPrefix'}
for row in csv.DictReader(open(FILE)):
if row['Type'] == 'RoutePattern':
for nb in NBS:
for field in fields_route:
if nb in row[field]:
for new in NEW_NBS:
if nb in new:
rp = row['Pattern']
pt = row['Partition']
newrp = row['Pattern'].replace(nb, new)
if row['CalledX'] == 'None':
cedp = row['CalledX'].replace('None', '')
else:
cedp = row['CalledX'].replace(nb, new)
if row['CalledPrefix'] == 'None':
pced = row['CalledPrefix'].replace('None', '')
else:
pced = row['CalledPrefix'].replace(nb, new)
if row['CallingX'] == 'None':
cingp = row['CallingX'].replace('None', '')
else:
cingp = row['CallingX'].replace(nb, new)
if row['CallingPrefix'] == 'None':
pcing = row['CallingPrefix'].replace('None', '')
else:
pcing = row['CallingPrefix'].replace(nb, new)
return rp, pt, newrp, cedp, pced, cingp, pcing
def main():
for test in read():
print(test)
if __name__ == '__main__':
main()
csv 是
Type,Pattern,Partition,Description,CalledX,CalledPrefix,CallingX,CallingPrefix,FwdAll,FwdBusyInt,FwdBusyExt,FwdNAnsInt,FwdNAnsExt,FwdNCovInt,FwdNCovExt,FwdCTIFail,FwdURegInt,FwdURegExt,ExtPNMask,Device
DirectoryNumber,875423,a_nothing_partition,a_nothing_DN,N/A,N/A,N/A,N/A,11,22,33,44,55,66,744547722,77,88,99,9898,SEP798798465143
DirectoryNumber,5684001,a_nothing_partition,None,N/A,N/A,N/A,N/A,None,None,None,None,None,None,None,None,None,None,N/A,N/A
TranslationPattern,568412,a_nothing_partition,a_nothing_tp,None,None,None,5236,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
TranslationPattern,568411,a_nothing_partition,a_nothing_tp,None,None,875421,None,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
TranslationPattern,744547720,a_nothing_partition,a_nothing_tp,961433,None,None,None,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
TranslationPattern,744547721,a_nothing_partition,a_nothing_tp,None,786512,None,None,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
TranslationPattern,47852,a_nothing_partition,a_nothing_tp,None,None,744547711,None,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
TranslationPattern,9632,a_nothing_partition,a_nothing_tp,None,None,None,5684,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
TranslationPattern,897435496,a_nothing_partition,a_nothing_tp,568433,None,None,None,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
TranslationPattern,7896312145697,a_nothing_partition,a_nothing_tp,None,7445477,None,None,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
RoutePattern,6568433,a_nothing_partition,None,None,None,None,None,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
RoutePattern,6568434,a_nothing_partition,None,None,None,None,None,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
RoutePattern,24132,a_nothing_partition,a_nothing_rp,None,None,7445477,None,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
HuntPilot,568444,a_nothing_partition,a_nothing_hunt pilot,88,99,66,77,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
CingPartyX,8787,a_nothing_partition,a_nothing_calling party X,N/A,N/A,11,744547722,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
CedPartyX,98563,a_nothing_partition,a_nothing_called party X,N/A,N/A,568496,None,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
【问题讨论】:
-
目前还不清楚到底是什么问题。请解释问题并将其减少到minimal reproducible example°
-
其实代码是完整的,可验证的,只是不是很小:^)
标签: python python-3.x csv for-loop