在邮件中,有以下行。这些行将被转换为 基于“List Num”的单行。对于打印,以下代码是 工作。我想将它存储在变量中以进行进一步分析。
mail = mailbody.splitlines()
nmail = ""
lnflg = "yes"
for line in mail:
if re.findall(r'List Num:\s*([A-Z][0-9]{5}[A-Z]*)', line) != []:
lnflg = "no"
print "\n"
if lnflg == "no":
print line.rstrip(os.linesep),
else:
print line
如果我使用for循环
打印,则下面的代码无法正常工作mail = mailbody.splitlines()
nmail = ""
lnflg = "yes"
for line in mail:
if re.findall(r'List Num:\s*([A-Z][0-9]{5}[A-Z]*)', line) != []:
lnflg = "no"
#print "\n"
nmail = nmail + "\n"
if lnflg == "no":
#print line.rstrip(os.linesep),
nmail = nmail + line.rstrip(os.linesep)
else:
nmail = nmail + line
for ln in nmail:
print ln
列出编号:L08586 Proj / Prob:09P0087应用程序:ACI
加载到:TFDSA-SA直到:ON PROGRAM BASE Oncall Grp:TPFACI1
请求者:HZDSF1 - ABCD工作电话:XX-XX-XXXXXXXX
审批人:FSDSJ8主管:ABCD XYZ
更新时间:04/28/2011(01:05:46 E)
细分:PESSFH PESGSDG
目的:这与09P0087有关
BARCODE WILL BE SUBMITTED IN ANOTHER PGMLST.
列出编号:L08586 Proj / Prob:09P0087应用程序:ACI
加载到:TFDSA-SA直到:ON PROGRAM BASE Oncall Grp:TPFACI1
请求者:HZDSF1 - ABCD工作电话:XX-XX-XXXXXXXX
审批人:FSDSJ8主管:ABCD XYZ
更新时间:04/28/2011(01:05:46 E)
细分:PESSFH PESGSDG
目的:这与09P0087有关
BARCODE WILL BE SUBMITTED IN ANOTHER PGMLST.
变量中的预期输出:
列表编号:L08586 Proj / Prob:09P0087应用:ACI加载到:TFDSA-SA直到:ON PROGRAM BASE Oncall Grp:TPFACI1请求者:HZDSF1 - ABCD工作电话:XX-XX-XXXXXXXX审批人:FSDSJ8主管:ABCD XYZ更新时间:04/28/2011(01:05:46 E)细分:PESSFH PESGSDG目的:这与09P0087条款有关,将以另一个PGMLST提交。
列表编号:L08586 Proj / Prob:09P0087应用:ACI加载到:TFDSA-SA直到:ON PROGRAM BASE Oncall Grp:TPFACI1请求者:HZDSF1 - ABCD工作电话:XX-XX-XXXXXXXX审批人:FSDSJ8主管:ABCD XYZ更新时间:04/28/2011(01:05:46 E)细分:PESSFH PESGSDG目的:这与09P0087条款有关,将以另一个PGMLST提交。
答案 0 :(得分:1)
这里的错误似乎是在行尾有一个comma
(,)。
nmail = nmail + line.rstrip(os.linesep),
如果你有一个元组类型,如果它也是一个元组,你只能添加另一个项目。你从一个字符串开始,这意味着你只能添加类似的类型。
这是一个显示问题的元组示例:
>>> a = (1,)
>>> a+2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate tuple (not "int") to tuple