Python 使用smbclient从samba共享获取最新文件
我的目录包含这个文件,它是不同的版本,我想从中选择最新的版本,可以按日期排序,也可以按文件名末尾的修订号排序,比如Python 使用smbclient从samba共享获取最新文件,python,python-3.x,smb,Python,Python 3.x,Smb,我的目录包含这个文件,它是不同的版本,我想从中选择最新的版本,可以按日期排序,也可以按文件名末尾的修订号排序,比如 Myfile2001.txt 其中2001是修订号 如何使用smb客户端从samba共享目录获取最新文件,我想到了使用mask取出所有名称并将其传输到输出,然后执行一些搜索算法以找到最大的数字(最新版本),然后使用smbclient get获取文件,但这似乎不是一个最佳的解决方案,而且太单调乏味了。我想知道还有没有别的办法 EDIT:我在python中找到了另一种方法(只是为了方便
Myfile2001.txt
其中2001
是修订号
如何使用smb客户端从samba共享目录获取最新文件,我想到了使用mask取出所有名称并将其传输到输出,然后执行一些搜索算法以找到最大的数字(最新版本),然后使用smbclient get
获取文件,但这似乎不是一个最佳的解决方案,而且太单调乏味了。我想知道还有没有别的办法
EDIT:我在python中找到了另一种方法(只是为了方便起见),在文本文件或STDOUT
中捕获smbclient get ls
的输出,然后使用python查找最新文件名。现在我不知道如何将上述命令的输出重定向到文本文件或STDOUT
以根据逻辑处理它
有什么办法吗?由于
smbclient
不允许iOredition,因此我仍然坚持使用更新的方法。我已经通过了pysmb
,但不能依赖它,因为它是一个实验库,但是,任何使用pysmb
的解决方案也可以暂时解决这个问题 我已经用bash脚本中的awk解决了这个问题。目标:下载最新的csv文件
${SmbCmd} "ls <mask>" 2>/dev/null\
| awk '{ if ($1 ~ "csv$") print $1 }' | sort | tail -1)
${SmbCmd}“ls”2>/dev/null\
|awk{if($1~“csv$”)print$1}| sort | tail-1)
其中${SmbCmd}具有要发送到smb服务器的所有值,如smbclient的路径、身份验证方法、smb服务器名称、smb目录。。。。然后以“-command”的长格式结束
当然,我的csv文件名的创建日期为“name_yyyy-mm-dd.csv”
你可以试试那样的
${SmbCmd} "ls <mask>-*" | awk '{ if ($1 ~ "csv$") print $8$5$6";"$1 }'
${SmbCmd}“ls-*”|awk'{if($1~“csv$”)打印$8$5$6“$1}”
但是,月份不是数字的我已经在bash脚本中使用awk解决了这个问题。目标:下载最新的csv文件
${SmbCmd} "ls <mask>" 2>/dev/null\
| awk '{ if ($1 ~ "csv$") print $1 }' | sort | tail -1)
${SmbCmd}“ls”2>/dev/null\
|awk{if($1~“csv$”)print$1}| sort | tail-1)
其中${SmbCmd}具有要发送到smb服务器的所有值,如smbclient的路径、身份验证方法、smb服务器名称、smb目录。。。。然后以“-command”的长格式结束
当然,我的csv文件名的创建日期为“name_yyyy-mm-dd.csv”
你可以试试那样的
${SmbCmd} "ls <mask>-*" | awk '{ if ($1 ~ "csv$") print $8$5$6";"$1 }'
${SmbCmd}“ls-*”|awk'{if($1~“csv$”)打印$8$5$6“$1}”
但是,这个月不是数字我很想知道投票结果。我有什么不对劲吗?我很想知道反对票的情况。我有什么毛病吗?