用Python解析shell文件输出

4 投票
4 回答
1377 浏览
提问于 2025-04-15 11:08

我有一个文件,里面有一些数据。这个文件是从一个shell脚本生成的输出:

|a                     |869         |
|b                     |835         |
|c                     |0           |
|d                     |0           |
|e                     |34          |
|f                     |3337     

我该怎么从中提取出a = 869呢?

4 个回答

3

你还可以使用 csv 模块,并把分隔符设置为 |

4
lines =  file("test.txt").readlines()
d = dict([[i.strip() for i in l.split("|")[1:3]] for l in lines if l.strip()])

比如说:

>>> lines =  file("test.txt").readlines()
>>> d = dict([[i.strip() for i in l.split("|")[1:3]] for l in lines if l.strip()])
>>> d['a']
'869'
9

你可以这样做:

output = {}
for line in open("myfile"):
    parts = line.split('|')
    output[parts[1].strip()] = parts[2].strip()

print output['a'] // prints 869
print output['f'] // prints 3337

或者,使用csv模块,正如Eugene Morozov建议的那样:

import csv
output = {}
reader = csv.reader(open("C:/output.txt"), delimiter='|')
for line in reader:
    output[line[1].strip()] = line[2].strip()

print output['a'] // prints 869
print output['f'] // prints 3337

撰写回答