Paramiko SFTPAttributes 中的属性

问题描述 投票:0回答:1

http://docs.paramiko.org/en/stable/api/sftp.html#paramiko.sftp_attr.SFTPAttributes 现在显示 SFTP 属性的文档

我在终端中执行了以下代码

>>> import paramiko
>>> from stat import S_ISDIR
>>> 
>>> client = paramiko.SSHClient()
>>> client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
>>> client.connect('ipaddress', username='xxx', password='xxx', banner_timeout=60)
>>> sftp = client.open_sftp()
>>> dl= '/home/generic/'
>>> a=sftp.listdir_attr(dl)
>>> print(a)

[]

我获得了文档中所述的 SFTP 属性。

但是,我的疑问是,当我检查上面返回的每个项目时,例如

dir(a[0])
,它有以下项目:

>>> dir(a[0])
['FLAG_AMTIME', 'FLAG_EXTENDED', 'FLAG_PERMISSIONS', 'FLAG_SIZE', 'FLAG_UIDGID', '__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_debug_str', '_flags', '_from_msg', '_pack', '_rwx', '_unpack', 'asbytes', 'attr', 'filename', 'from_stat', 'longname', 'st_atime', 'st_gid', 'st_mode', 'st_mtime', 'st_size', 'st_uid']

>>> type(a[0])
<class 'paramiko.sftp_attr.SFTPAttributes'>
>>> 

上面传递的文档没有给出有关

filename
longname
asbytes
等的提示。 这个属性是从哪里添加的?我如何从文档本身理解它?

python python-3.x sftp paramiko
1个回答
4
投票

你的问题有点模糊,所以我只能引用

SFTPAttributes
文档

客户端或服务器模式下 SFTP 的文件(或代理文件)属性的表示。它尝试尽可能接近地镜像 os.stat 返回的对象,因此它可能具有以下字段,其含义与 os.stat 对象返回的含义相同:

  • st_size
  • st_uid
  • st_gid
  • st_mode
  • st_atime
  • st_mtime

由于 SFTP 允许标志具有其他任意命名属性,因此这些属性存储在名为

attr
的字典中。有时,文件名也会存储在
filename
中。

文档中唯一未提及的属性是

longname
,它通常包含类似于 *nix
ls
命令输出的字符串。

其余一些,如

asbytes
from_stat
,是低级方法,而不是属性。除非你有特殊需求,否则可以忽略这些。

© www.soinside.com 2019 - 2024. All rights reserved.