簡體   English   中英

如何在python中執行cat文件名*

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM