我正在创建一个包含从Linux中的hdparm中提取的HDD信息的文本文件。然后,我正在读取该文件并挑选出某些行并将它们存储在变量中供以后使用。我想删除所有空格并删除每行的第一部分,只留下如下信息:
Model Number: ST9500325AS
将成为:
ST9500325AS
到目前为止,我有以下内容:
import subprocess
from subprocess import Popen, PIPE
# Get HDD details and save them to hdd_info.txt
info = Popen(["sudo", "hdparm", "-I", "/dev/sda1"], stdout=subprocess.PIPE)
output = info.stdout.read()
f = open('hdd_info.txt', 'w')
f.write(output)
f.close()
# Get HDD info as vars
with open('hdd_info.txt', 'r') as file:
data = file.readlines()
model = data[4].strip()
print model
现在它从头开始删除空格,但不删除中间的空格。还试图删除变量的'Model Number:'部分我尝试了以下但没有成功:
model.lstrip('13')
答案 0 :(得分:1)
您可以用冒号分割它,从结果列表中获取第二项并删除所有空格:
split(':', 1)[-1].strip()
答案 1 :(得分:0)
如果你想砍掉一个字符串的前13个字符,你可以这样做:
text = text[13:]
或者,如果你行开头的不需要的东西长度可变(由Martijn Pieters挑选出来),你可以从冒号的索引开始。
text = text[text.index(':')+1:]
之后空间将在开头,所以你可以打电话
text = text.strip()
剥去周围的空白。
答案 2 :(得分:0)
>>> m = "Model Number: ST9500325AS"
>>> m.split(':')[1].strip()
'ST9500325AS'