caiying069 发表于 2020-4-4 22:14:10

如何在使用os.listdir()时忽略隐藏文件?

大家好,请教一下如何在使用os.listdir()时忽略隐藏文件?
我在使用os.listdir(c:\\)时,把我c盘里的隐藏文件都打印出来了,请问有什么办法能取消掉隐藏文件呢
# 输入盘名-->显示盘下面的所有目录
# 选择目录下的文件夹-->显示文件夹下的所有目录并显示地址
import os


def showfile(path):
    num = 1
    all_file = os.listdir(path)# listdir(path='.')# 列举指定目录中的文件名('.'表示当前目录,'..'表示上一级目录)#os.curdir指代当前目录('.')
    for each_file in all_file:
      print('%s.%s' % (num, each_file))
      num += 1

def montage():
    temp_path = input('请输入地址:【C/D/E/F】:') + ':\\'
    TEMP_PATH = temp_path.upper()
    if TEMP_PATH not in ['C:\\','D:\\',' E:\\', 'F:\\']:
      input('您的输入有误,请重新输入地址:【C/D/E/F】:') + ':\\'
      return
    else:
      showfile(temp_path)

montage()

_荟桐_ 发表于 2020-4-4 22:27:33

本帖最后由 _荟桐_ 于 2020-4-4 23:09 编辑

import os
a = != "."]
把这一段加进去就o了

xiangjianshinan 发表于 2020-4-5 00:12:04

# 输入盘名-->显示盘下面的所有目录
# 选择目录下的文件夹-->显示文件夹下的所有目录并显示地址
import os
import win32api,win32con

def showfile(path):
    num = 1
    all_file = os.listdir(path)# listdir(path='.')# 列举指定目录中的文件名('.'表示当前目录,'..'表示上一级目录)#os.curdir指代当前目录('.')
    for each_file in all_file:
      if bool(win32api.GetFileAttributes(each_file) & win32con.FILE_ATTRIBUTE_HIDDEN):
            continue#获取文件或目录是否有隐藏属性,有则continue
      print('%s.%s' % (num, each_file))
      num += 1

def montage():
    temp_path = input('请输入地址:【C/D/E/F】:') + ':\\'
    TEMP_PATH = temp_path.upper()
    if TEMP_PATH not in ['C:\\','D:\\',' E:\\', 'F:\\']:
      input('您的输入有误,请重新输入地址:【C/D/E/F】:') + ':\\'
      return
    else:
      showfile(temp_path)

montage()

caiying069 发表于 2020-4-6 12:03:06

xiangjianshinan 发表于 2020-4-5 00:12


我安装了win32之后,还是打不开文件,还是报错,原因是pywintypes.error: (2, 'GetFileAttributes', '系统找不到指定的文件。')

caiying069 发表于 2020-4-6 12:04:16

_荟桐_ 发表于 2020-4-4 22:27
import os
a =!= "."]
把这一段加进去就o了

我的隐藏文件不是由.开头的,所以还是排除不了隐藏文件

caiying069 发表于 2020-4-6 12:11:35

想问一下,怎么不打印处隐藏文件夹呢,是隐藏文件夹,不是文件

_荟桐_ 发表于 2020-4-6 15:27:52

caiying069 发表于 2020-4-6 12:04
我的隐藏文件不是由.开头的,所以还是排除不了隐藏文件

是$开头的吗

_荟桐_ 发表于 2020-4-6 15:30:21

本帖最后由 _荟桐_ 于 2020-4-6 15:35 编辑

caiying069 发表于 2020-4-6 12:11
想问一下,怎么不打印处隐藏文件夹呢,是隐藏文件夹,不是文件

a = != "$"]
这样呢??

↓↓↓不行试试这个↓↓↓
a = != "$" if os.path.isdir(b)]

_荟桐_ 发表于 2020-4-6 15:57:44

其他的那些隐藏文件夹应该是隐藏不了(是系统隐藏起来的)

caiying069 发表于 2020-4-6 17:15:33

_荟桐_ 发表于 2020-4-6 15:27
是$开头的吗

有部分是$开头的,有的是字母开头
E:\python\python\python.exe E:/python/学习资料/小甲鱼—《零基础入门学习Python》(公众号青年时刻)/030文件系统:介绍一个高大上的东西/新建文件夹/1.py
请输入地址:【C/D/E/F】:c
1.$360Section
2.$RECYCLE.BIN
3.2C5F5F0EB33C4F75B4DB9C6ACF8CF3E1
4.360SANDBOX
5.AppData
6.Aria2Data
7.Boot
8.bootmgr
9.C5E2E89ACDE2CFBDC803E906960B3DD3
10.ckcore.txt
11.CSUWX
12.Documents and Settings
13.Drivers
14.InstallConfig.ini
15.MSOCache
16.NVIDIA
17.pagefile.sys
18.Program Files
19.Program Files (x86)
20.ProgramData
21.System Volume Information
22.Users
23.widgets_config.upup
24.Windows

_荟桐_ 发表于 2020-4-6 18:26:22

caiying069 发表于 2020-4-6 17:15
有部分是$开头的,有的是字母开头
E:\python\python\python.exe E:/python/学习资料/小甲鱼—《零基础入 ...

那些隐藏文件夹应该不能在listdir的时候不显示吧。

caiying069 发表于 2020-4-7 21:20:43

_荟桐_ 发表于 2020-4-6 18:26
那些隐藏文件夹应该不能在listdir的时候不显示吧。

今天还是遇到了隐藏文件的问题,在做第30课第3个题目的时候,如果输入E://盘,会由于经过隐藏文件,发生报错,但是如果从更深的目录输入如E://python//学习资料//小甲鱼—《零基础入门学习Python》(公众号青年时刻)/就不会报错,并能成功打印出vedio.txt文件,这就很头痛了。

_荟桐_ 发表于 2020-4-8 08:03:25

caiying069 发表于 2020-4-7 21:20
今天还是遇到了隐藏文件的问题,在做第30课第3个题目的时候,如果输入E://盘,会由于经过隐藏文件,发生 ...

那个是跳不过隐藏文件的
如果报的错是权限错误,就加上try语句
如果是有同名的文件,就弄一个循环,把所有叫vedio.txt的都找出来

陈尚涵 发表于 2020-4-9 11:25:17

当我没说
页: [1]
查看完整版本: 如何在使用os.listdir()时忽略隐藏文件?