python - Paramiko SFTPAttributes 中的属性
问题描述
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)
[<SFTPAttributes: [size=4096 uid=1000 gid=1000 mode=040775 atime=1624152009 mtime=1622179445]>, <SFTPAttributes: [size=4096 uid=1000 gid=1000 mode=040775 atime=1624172765 mtime=1623920]>7 , <SFTPAttributes: [size=1100 uid=1000 gid=1000 mode=0100600 atime=1624121097 mtime=1624121097]>]
我得到了文档中解释的 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
。从哪里添加这个属性?我如何从文档本身理解它?
解决方案
你的问题有点含糊,所以我只能引用SFTPAttributes
文档:
以客户端或服务器模式表示 SFTP 的文件(或代理文件)的属性。它试图尽可能地镜像os.stat返回的对象,因此它可能具有以下字段,与os.stat对象返回的含义相同:
st_size
st_uid
st_gid
st_mode
st_atime
st_mtime
因为 SFTP 允许标志具有其他任意命名属性,所以这些属性存储在一个名为
attr
. 有时,文件名也存储在filename
.
文档中没有提到的唯一属性是longname
,通常包含一个类似于 *nixls
命令输出的字符串。
其余的一些,比如asbytes
and from_stat
,是低级方法,而不是属性。除非您有特定需求,否则您可以忽略这些。
推荐阅读
- swift - NavigationBackButton 和 List-headline 和 NavigationBackButton 之间的空格
- visual-studio - docker-compose 与 Visual Studio 混合 Windows 和 Unix 路径
- mysql - 这可以用子查询来完成吗?
- reactjs - 无法将 React 状态设置为对象数组
- javascript - React Native Expo MapView - 将标记详细信息传递给扩展的底部视图
- vue.js - Vue - 将带有冒号的道具传递到组件时出现问题
- python - 用 0 替换每个字符串值
- java - How to get selective columns in Export Csv in Spring boot
- php - json_decode 不带引号的值
- android - 无法在 Mac 的设备和模拟器中运行我的 Android 应用程序