python删除最后一个逗号

时间:2016-09-27 19:01:02

标签: python python-2.7 python-3.x

我在output.txt文件中有这样的东西

Service1:Aborted
Service2:failed
Service3:failed
Service4:Aborted
Service5:failed

输出第二个文件(output2.txt):

 Service1        Service2   Servive3   Service4     Service5
 Aborted         failed     failed     Aborted      failed

想删除该行中的最后一个逗号。

我正在尝试的代码:

    file=open('output.txt','r')
    target=open('output2.txt','w')
    for line in file.readlines():
          line=line.strip()
          parts=line.split(":")
          for part in parts:
               var2=part.strip()+","
          target.write(var2.rstrip(','))        # Not working
   target.close()

2 个答案:

答案 0 :(得分:0)

使用列表并将项目附加到其中。访问零件[-1]将返回拆分零件中的最后一项。然后使用join()将逗号放在所有收集状态之间:

states = []
for line in file.readlines():
    parts=line.strip().split(':')
    states.append(parts[-1])
print(','.join(states))

答案 1 :(得分:0)

这会产生您最初请求的输出:

file=open('output.txt','r')
target=open('output2.txt','w')
states = [line.strip().split(':')[-1] for line in file.readlines()]
target.write(','.join(states))
target.close()

即,此代码的输出为:

Aborted,failed,failed,Aborted,failed

对于表格视图,假设选项卡式输出将对齐,此代码为:

file=open('output.txt','r')
target=open('output2.txt','w')
states, titles = [], []
for line in file.readlines():
    title, state = line.split(':')
    titles.append(title)
    states.append(state)
target.write('\t'.join(titles))
target.write('\n')
target.write('\t'.join(states))
target.close()

将生成请求的表视图(注意此输出中没有逗号):

Service1        Service2   Servive3   Service4     Service5
Aborted         failed     failed     Aborted      failed

如果要更精确地控制对齐,则需要应用格式设置,例如测量每列中文本的最大宽度,然后将其用作格式说明符。