我有文件/tmp/gs.pid與內容Python文件讀取
client01: 25778
我想從中獲取的第二個字。 即。 25778
。
我試過下面的代碼,但它沒有工作。
>>> f=open ("/tmp/gs.pid","r")
>>> for line in f:
... word=line.strip().lower()
... print "\n -->" , word
我有文件/tmp/gs.pid與內容Python文件讀取
client01: 25778
我想從中獲取的第二個字。 即。 25778
。
我試過下面的代碼,但它沒有工作。
>>> f=open ("/tmp/gs.pid","r")
>>> for line in f:
... word=line.strip().lower()
... print "\n -->" , word
試試這個:
>>> f = open("/tmp/gs.pid", "r")
>>> for line in f:
... word = line.strip().split()[1].lower()
... print " -->", word
>>> f.close()
它將打印小寫每一行的第二個字。 split()
將把你的線和分割它的任何空格並返回一個列表,然後索引[1]
將採取第二個元素的列表和lower()
將結果轉換爲小寫。請注意,這將是有意義的檢查是否有就行了至少2個字,例如:
>>> f = open("/tmp/gs.pid", "r")
>>> for line in f:
... words = line.strip().split()
... if len(words) >= 2:
... print " -->", words[1].lower()
... else:
... print 'Line contains fewer than 2 words.'
>>> f.close()
word="client01: 25778"
pid=word.split(": ")[1] #or word.split()[1] to split from the separator
如果所有行的形式abc: def
的,你可以用
second_part = line[line.find(": ")+2:]
如果不是,您需要驗證line.find(": ")
確實首先返回一個非負數。
with open("/tmp/gs.pid") as f:
for line in f:
p = line.find(": ")
if p != -1:
second_part = line[p+2:].lower()
print "\n -->", second_part
'find()'檢查可簡化爲'if':'in line:',儘管在這種情況下您需要拆分而不是使用find索引。 – 2010-02-04 07:20:12
>>> open("/tmp/gs.pid").read().split()[1]
'25778'
謝謝大家現在它的工作。 – 2010-02-04 07:24:42