[英]How execute cat filename* in python
我真的是python的新手,經過數小時的查找,我仍然找不到解決方案(或者無法理解其他人提供的解決方案)。
我想檢查具有相同初始名稱“ pid”的幾個文件的內容,后跟文件夾中的非連續整數,以確保它們都包含單詞“ done”。 這些文件包含一個單詞。
我最初的想法是使用
cat pid*
以某種方式使該命令的輸出進入列表,然后橫向比較列表以比較值
result = 'Finished'
for x in range(len(myList)):
if 'done' not in myList[x]:
result = 'Continue'
break
if result == 'Finished':
print 'Finished'
那是我的主意,但是我找不到找到包含cat輸出的列表的方法。
經過一番摸索之后,我放棄了這個想法,並做了一個很差的實現(我認為),我確信必須有一個更好的解決方案
filedir = os.popen('ls','r')
for line in filedir:
print line
if 'pid' in line:
filename = open(line.replace('\n', ''), 'r')
firstline = filename.readline()
print firstline
if 'done' not in firstline:
status = 'RUNNING'
break
if status == 'DONE':
print 'Finished'
else:
print status
任何幫助都非常感謝!
您可以使用glob
模塊,該模塊“根據Unix Shell使用的規則查找與指定模式匹配的所有路徑名”:
import glob
for fn in glob.glob('pid*'):
with open(fn) as f:
if 'done' in f.read():
...
使用glob
執行通配符匹配,然后讀取文件。
並且請... 停止調用shell命令來執行可以在python本身中輕松完成的操作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.