BaiduPCS-Py
BaiduPCS-Py copied to clipboard
建议: ls命令的输出格式建议
首先就是 ls
的 --csv
开关输出的格式根本就不是csv格式;如果加上了递归输出,什么都不是了。
--csv
开关` 改成输出为合法的csv的格式,而不是tsv(要Tab分割就额外指定)。
path (绝对路径) | isdir (是否为目录) | size (大小: 字节) | user(所属用户) | modified (修改时间) |
---|---|---|---|---|
/dir/file.txt | False | 123454121 | a_user | 2022/01/23 12:34 |
括号的中文只是说明这一列的是什么数据;其次可能需要注意下文件名中包含,
。
其次额外建议加一个类似win DIR
的 /B
输出,方便重定向到txt文件。
确实 ls --csv
不是为了输出标准 csv 用的,是为了给使用者多一个显示的方式。因为 rich 会对于一行过长的输出在列间换行,导致在终端复制不方便。--csv
选项是用 __builtin__.print
来打印一行的,不会有这个问题。
--csv
选项和 --show-*
系列选项一起用来定义输出的内容,使用者可以自己选择。
如果需要输出标准的 csv,原理上使用者只需要加几个过滤器就好了。比如:
BaiduPCS-Py ls /some/path --csv --show-size --show-date --show-absolute-path -R | sd '([^\t]*,[^\t]*)' '"$1"' | sd '\t' ',' | rg -v '^(/|,,)'
sd: https://github.com/chmln/sd rg: https://github.com/BurntSushi/ripgrep
需要用户调用其他程序转换出本身应该是由这程序的输出就很奇怪。
我看法要么改文档(和改开关名)要么就是直接输出现在文档写着的CSV格式。
~~而且搞得这么复杂不如直接让用户写个py脚本直接调用api,然而没多少人会编程和正则表达式~~
可以单独加一个 csv
命令来输出标准的 csv 文件。ls --csv
是为方便显示,不想改动。