'行字符后出现意外字符'

2024-09-30 12:33:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个用python打印文本文件内容的代码。你知道吗

除了我的最后一句台词外,一切似乎都很稳定:

f2 = open('D:\\1CP0_02_June 2016_Paper - Copy\\paintingJobs.txt','r')
for lineB in f2:
    if "A" in lineB:
        listB = [lineB]
print("Estimate Number\tEstimate Date\tCustomer ID\tFinal Total\tAmount Paid\tAmount Outstanding")
print(listB[0]\tlistB[1]\tlistB[2]\tlistB[3]\tlistB[4]\tlistB[5])

最后一行在执行过程中产生错误,称为“一行字符接一行字符”

有什么建议吗?你知道吗

listB内部有以下内容(仅供澄清):

['E5342,21/09/2015,C103,290,A,290\n']
['E5344,22/09/2015,C105,180,A,180\n']
['E5345,22/09/2015,C106,815,A,400\n']
['E5348,23/09/2015,C109,370,A,200\n']
['E5349,25/09/2015,C110,480,A,250\n']
['E5350,25/09/2015,C111,330,A,330\n']
['E5353,28/09/2015,C114,272,A,200\n']
['E5355,29/09/2015,C116,530,A,450\n']
['E5358,29/09/2015,C119,380,A,380\n']
['E5361,01/10/2015,C122,374,A,374\n']
['E5363,01/10/2015,C124,930,A,500\n']
['E5364,02/10/2015,C125,915,A,800\n']
['E5365,02/10/2015,C126,1486,A,1486\n']
['E5367,03/10/2015,C128,427,A,350\n']
['E5368,05/10/2015,C129,1346,A,1346\n']
['E5371,10/10/2015,C132,289,A,289\n']
['E5373,10/10/2015,C134,1023,A,550\n']
['E5376,13/10/2015,C137,297,A,297\n']
['E5380,15/10/2015,C141,425,A,425']

Tags: 代码in内容open字符paperf2print
3条回答

对于上面的代码,listB将只包含文件中的最后一行,因为您在每次迭代中都为[lineB]赋值,而不是追加它。你知道吗

另外,如果“A”恰好出现在字符串的第五个字段以外的任何地方,例如在“估计数”或“客户ID”中,它也将包含在listB中,即使支付的金额不是“A”。你知道吗

这个怎么样?你知道吗

listB = []
with open("d:/filename.txt") as f2:
    for lineB in f2:
        if "A" == lineB.split(',')[4]:
            listB.append(lineB.replace(',','\t').rstrip('\n'))

print("Estimate Number\tEstimate Date\tCustomer ID\tFinal Total\tAmount Paid\tAmount Outstanding")
print("\n".join(listB))

也许在最后一行试试这个。你知道吗

print(listB[0], "\t", listB[1], "\t",  listB[2], "\t", listB[3], 
      "\t",  listB[4], "\t",  listB[5])
print(listB[0]\tlistB[1]\tlistB[2]\tlistB[3]\tlistB[4]\tlistB[5])

这是什么?看起来您想打印制表符,但不能只是将制表符粘贴到某个位置进行打印,它必须位于字符串中:

print("{}\t{}\t{}\t{}\t{}\t{}".format(*listB[:6])

不过,仅仅连接字符串可能更容易:

print("\t".join(listB))

相关问题 更多 >

    热门问题