SSH2 Python如何识别文件何时为目录
我正在将我的python程序从paramiko转换为ssh2。我已经成功地进行了身份验证,我可以得到一个目录列表。我被卡住的地方是当我处理目录列表时,我如何识别“文件”是目录还是文件。我看到了属性,但我只能看到atime是我想要使用的东西(以了解文件有多旧)。一旦我完成了opendir和readdir(以及文件列表),我如何识别它们是文件还是目录 当我执行readdir时,返回:SSH2 Python如何识别文件何时为目录,python,ssh2,Python,Ssh2,我正在将我的python程序从paramiko转换为ssh2。我已经成功地进行了身份验证,我可以得到一个目录列表。我被卡住的地方是当我处理目录列表时,我如何识别“文件”是目录还是文件。我看到了属性,但我只能看到atime是我想要使用的东西(以了解文件有多旧)。一旦我完成了opendir和readdir(以及文件列表),我如何识别它们是文件还是目录 当我执行readdir时,返回: 文件名长度 文件名 属性 时间 文件大小 旗帜 基德 时间 权限 液体 我自己没有用过,但我想检查一下标志的内
- 文件名长度
- 文件名
- 属性
- 时间
- 文件大小
- 旗帜
- 基德
- 时间
- 权限
- 液体
- 我自己没有用过,但我想检查一下
标志的内容。根据(由@NullPointerException建议的)可能的值为:
LIBSSH2_SFTP_S_IFMT
文件掩码的类型
LIBSSH2_SFTP_S_iffo
命名管道(fifo)
LIBSSH2_SFTP_S_IFCHR
特殊字符(字符设备)
LIBSSH2_SFTP_S_IFDIR
目录
LIBSSH2_SFTP_S_IFBLK
块专用(块设备)
LIBSSH2_SFTP_S_IFREG
常规文件
LIBSSH2\u SFTP\u S\u iFlk
符号链接
LIBSSH2_SFTP_S_IFSOCK
插座
我想说,flags
是一个位字段,您必须使用位运算符检查某个标志是否“打开”,例如,要检查它是一个目录:
flags & LIBSSH2_SFTP_S_IFDIR == LIBSSH2_SFTP_S_IFDIR
显然,它在ssh2python中被称为LIBSSH2\u SFTP\u s\u IFDIR
:我确实找到了对它们的引用,但我似乎不知道如何转换flags属性(例如15)为了弄清楚我需要什么。我有上面的代码,但它没有识别出条目是一个目录loc1是一个元组,由以下内容组成:来自ssh2.sftp导入LIBSSH2\u sftp\u S\u IFDIR来自ssh2.session导入session if loc1[2]。flags&LIBSSH2\u sftp\u IFDIR==LIBSSH2\u sftp\u S\u IFDIR:continue
0={int}7 1={str}.config'2={SFTPAttributes}atime={long}filesize={long}4096 flags={long}15 gid={long}mtime={long}权限={long}uid={long}
很抱歉格式设置不好-我尝试过,但似乎无法将其清晰地格式化。我自己没有使用ssh2,所以我只是在猜测。为什么不更新您的问题,添加您正在使用的代码?