首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python os.scandir显示苹果dmg,app,bundle作为目录

python os.scandir显示苹果dmg,app,bundle作为目录
EN

Stack Overflow用户
提问于 2017-11-08 23:16:19
回答 1查看 249关注 0票数 0

我正在为并行文件校验和编写一个程序。因为python ()显示了Apple,应用程序作为目录,所以我只能使用子目录计数。

到目前为止,我已经得到了以下代码。

代码语言:javascript
复制
import os, sys

### variables
PATH_SRC = os.getcwd()
EXCLUDE_FILES = ('__', '.')
EXCLUDE_DIRS = ('__', '.', '*.app', '*.dmg')
LIST_FILES = []
LIST_DIRS = []

COUNT_DIRS = 0
COUNT_FILES = 0`

with os.scandir(PATH_SRC) as it:
  for entry in it:
    if not entry.name.startswith(EXCLUDE_FILES):
      if entry.is_dir() and entry.name.startswith(EXCLUDE_DIRS):
        LIST_DIRS.append(entry.path)
        COUNT_DIRS = COUNT_DIRS + 1
      elif entry.is_file():
        LIST_FILES.append(entry.path)
        COUNT_FILES = COUNT_FILES + 1

print ('Source path contains ', COUNT_DIRS, ' subdirectories.')
print ('Source path contains ', COUNT_FILES, ' file(s).')


print (LIST_DIRS)
print (LIST_FILES)

源路径包含10个子目录,但上面提到的代码显示了16个子目录,因为有一些应用程序,dmg,它们被显示为目录。

我需要递归列出源路径中的文件,并排除隐藏和捆绑(dmg,app)。Count them...it将用作是否使用并行化的决定。我通常从闪存卡复制照片,但有时我会在我的文件服务器上复制整个尝试。

思想在它的背后,is...count源程序中的所有文件,path...if中有10多个文件用于example...run并行校验,files...SSD可以一次处理大约4个文件,并使CPU饱和。我的工作站有2个CPU,有4个核心each...but,会出现SSD瓶颈。

此外,RAID 10文件服务器可以同时处理大约2-3个文件。

我是Python新手,所以不要对复杂的代码感到惊讶。

AlGORITM: 1.检查文件总数并决定为MP (多线程还是多线程)

  1. 递归检查源路径,排除隐藏文件,并对其运行校验和bundles...then sha512。
  2. 每个dir/subdir必须有自己的校验和文件。我不希望源路径中有一个大的校验和文件

我希望你能理解。有什么建议吗?

问候

哈杰斯

EN

回答 1

Stack Overflow用户

发布于 2017-11-09 01:52:13

"Apps“("*.app")实际上是目录。

查看Mac OS命令。 ls

ls --列出目录内容 可供选择的有: ..。 -F在每个可执行文件之后显示一个斜杠(/') immediately after each pathname that is a directory, an asterisk (*'),在每个套接字后面显示一个at符号(@') after each symbolic link, an equals sign (='),在每个FIFO -G启用彩色输出后显示一个百分比符号(%') after each whiteout, and a vertical bar (-G‘)。此选项相当于在环境中定义CLICOLOR。(见下文) ..。

User/Library dir的结果:

Dirs是着色的,并由/追加

Applications dir的结果:

所有的应用程序*.app都是脏的。

以及其他档案的结果:

由于某种原因,*.dmg*.zip被标记为可执行文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47191345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档