我正在尝试编写一个程序,该程序搜索目录中的文件列表,如果文件混乱,则会提醒我。混乱的文件通常显示为?--------- ? ? ? ? ? tesfile

我创建了一个Python程序,它将搜索不同的文件所有者,并在发现其中一个文件由名为“?”的用户拥有时提醒我,但是该代码似乎无法正常工作。

这是我最初编写的用于尝试解决此问题的代码:

input_var=raw_input("Enter path:" )
files=[]
for file in os.listdir(input_var):
        test=getpwuid(stat(file).st_uid).pw_name
        if test=="?":
                print("Critical: "+ file)


但是,当我经常在目录上运行它时,会抛出一个错误

test=getpwuid(stat(file).st_uid).pw_name OSError: [Errno 2] No such file or directory: 'auth.log.3.gz'


我在/ home /目录上运行它的另一个示例:

File "./PythonTest.py", line 10, in <module>
    test=getpwuid(stat(file).st_uid).pw_name
OSError: [Errno 2] No such file or directory: 'ubuntu'


有更好的方法可以做到这一点,还是您有更好的方法?我认为错误是由于无法匹配导致的?任何UID,但我不确定。

谢谢

最佳答案

您需要获取os.stat的文件完整路径。

input_var=raw_input("Enter path:" )
files=[]

for dirpath, dirnames, filenames in os.walk(input_var):
    for fname in filenames:
        fullname = os.path.join(dirpath, fname)
        print(pwd.getpwuid(os.stat(fullname).st_uid).pw_name)

关于python - 使用Python在Linux内部提取困惑的组或所有者,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35483529/

10-10 08:25
查看更多