簡體   English   中英

如何在linux中使用python搜索可執行文件?

[英]How do I search for an executable file using python in linux?

如何在linux中使用python搜索可執行文件? 可執行文件沒有擴展名,並且與具有不同擴展名的文件一起位於文件夾中。 謝謝

編輯:我的意思是搜索是獲取所有可執行文件的文件名,並將它們存儲在列表或元組中。 謝謝

要在Python中執行此操作:

import os
import stat

executable = stat.S_IEXEC | stat.S_IXGRP | stat.S_IXOTH
for filename in os.listdir('.'):
    if os.path.isfile(filename):
        st = os.stat(filename)
        mode = st.st_mode
        if mode & executable:
            print(filename,oct(mode))

如果通過搜索,您的意思是列出目錄中的所有可執行文件,而不是使用此SuperUser Link中的命令。您可以使用Subprocess模塊從python代碼執行命令。

import shlex   
executables = shlex.split(r'find /dir/mydir -executable -type f')
output_process = subprocess.Popen(executables,shell=True,stdout=subprocess.PIPE)

函數os.access()在某些情況下比os.stat()更好,因為它根據文件所有者,組和權限檢查文件是否可以由執行。

import os

for filename in os.listdir('.'):
    if os.path.isfile(filename) and os.access(filename, os.X_OK):
        print(filename)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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