创建逗号分隔的路径列表(允许路径中有空格),并将结果作为变量传递以供再次使用

2024-09-19 23:44:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用rtcontrol的输出(属于Pyroscope),它用于从命令行控制rtorrentt。我要用另一个输入的格式来调用另一个输出

我只想能够选择符合条件的激流,但不与另一个激流共享路径。在

过程如下

PATHS=$(rtcontrol ratio=+2 completed=+5d -qopath)

echo $PATHS
# Output
# /home/user/path/name1
# /home/user/path/name2
# /home/user/path/name 3
# /home/user/path/name 3
# /home/user/path/name 4
# /home/user/path/name5

# Remove duplicates paths and convert $PATHS to comma delimited variable PATHS.
#
# UNSURE HERE....
#
# PATHS="/home/user/path/name1","/home/user/path/name2","/home/user/path/name 3","/home/user/path/name 4","/home/user/path/name5"

#Pass PATHS to rtcontrol again to get torrents in one of the paths.
PATHS_2=$(rtcontrol path=$PATHS -qopath)

echo $PATHS_2
#output
#/home/user/path/name1
#/home/user/path/name1
#/home/user/path/name2
#/home/user/path/name 3
#/home/user/path/name 3
#/home/user/path/name 4
#/home/user/path/name5

# Remove duplicates and convert $PATHS_2 to comma delimited variable.
#
# UNSURE HERE....
#
# PATHS_2="/home/user/path/name2","/home/user/path/name 3","/home/user/path/name 4","/home/user/path/name5"

#Pass to rtcontrol to perform action
rtcontrol path=$PATHS_2 --cull

这样做的原因是,一个torrent可能不满足条件或ratio=+2 completed=+5d,但与满足条件的路径相同。这是第二次调用的原因rtcontrol path=$PATHS -qopath

我尝试过uniq, sed and awk的不同组合,以及使用管道传递输出。应该注意的是rtcontrol输出可以通过管道输出,例如rtcontrol name="*Test* -qoname|uniq -u

这可以在纯bash或Python中处理。还有一些python库与torrent程序接口,可以执行类似的功能,甚至我正在研究的更高级的东西。在


Tags: andtopathname路径home激流paths
1条回答
网友
1楼 · 发布于 2024-09-19 23:44:06
 #!/bin/python
 import os
 import sys

 paths = {}
 for line in sys.stdin:
   path = line.strip()
   paths[path] = path
 print ','.join( sorted( paths.keys() )
 exit( 0 )

相关问题 更多 >