将多行转换为单行并存储在python中的变量中

时间:2015-06-10 13:11:51

标签: python

  

在邮件中,有以下行。这些行将被转换为   基于“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

用于打印nmail的循环

    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提交。

1 个答案:

答案 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
相关问题