通过sweech应用程序与android设备交互的命令行实用程序

sweech-cli的Python项目详细描述


这是什么?

它是与Sweech Wifi file transfer交互的命令行工具。

sweech是一款android应用,你可以通过它浏览手机内容并传输文件。它基于一个http服务器。此工具与sweech的http api交互。您可以直接从喜爱的外壳通过WiFi推送和拉取文件

好的,让我看看!

https://asciinema.org/a/113791.png

很好,我怎么得到它?

使用python的pip

$ pip install sweech-cli

或者下载python脚本并将其添加到$PATH

$ curl -o sweech https://raw.githubusercontent.com/alberthier/sweech-cli/master/sweech.py

$ wget -O sweech https://raw.githubusercontent.com/alberthier/sweech-cli/master/sweech.py

我怎么用?

sweech工具完全独立:

$ sweech -u http://192.168.0.65 info

在linux/macos上创建一个包含连接设置的配置文件是可行的:~/.config/sweech.json,在windows上创建一个包含连接设置的配置文件是可行的%APPDATA%/sweech.json

下面是一个示例文件,用于将192.168.0.65作为IP地址的电话

{"url":"http://192.168.0.65:4444","user":"","password":"","defaultdir":"/storage/emulated/0/Downloads"}

如果定义了defaultdir,则所有相对远程路径都将相对于此默认目录进行解释。

假设您已将sweech添加到PATH

$ sweech info

打印设备的信息和默认路径

$ sweech ls /storage/emulated/0/Download

列出文件夹的内容或显示文件的详细信息

$ sweech push testdir

将文件或目录推送到远程路径。如果未指定远程文件,则使用defaultdir

只能在内部存储中创建文件和目录。如果您已在应用程序的设置中授予Sweech此授权,则外部存储(SD卡)也可以写入。

--keep选项只上载远程设备上丢失的文件。现有文件未被触碰。

$ sweech pull testdir

将文件和文件夹从远程设备拉到本地文件夹。如果远程文件路径是相对的,defaultdir将用作基路径

--keep选项只下载丢失的本地文件。现有文件未被触碰。

$ sweech mkdir testdir

创建目录。也会创建缺少的中间目录

$ sweech rm /some/path

删除文件或目录(及其内容)

$ sweech mv /some/path /some/otherpath

移动文件或目录(及其内容)。在某些情况下,在目录之间移动文件可能会很慢(在不同存储之间,在Android 7.0之前的外部SD卡上)

$ sweech cat /path/to/some/file.txt

显示文件的内容

$ sweech clipboard

显示Android剪贴板的内容

$ sweech clipboard "Hello World"

设置Android剪贴板的内容

如果我想在python脚本中使用它呢?

只需导入sweech模块并使用Connector对象。所有cli命令都有其等效的方法:

importsweechc=sweech.Connector('http://192.168.0.11:4444')print(c.info())forfinc.ls('/storage/emulated/0/Download'):print(f)withopen('test.txt','wt')asf:f.write('Hello World')c.push('test.txt','/storage/emulated/0/Download')c.pull('/storage/emulated/0/Download/test.txt','/tmp')f=c.cat('/storage/emulated/0/Download/test.txt')print(f.read().decode('utf-8'))f.close()c.mkdir('/storage/emulated/0/Download/testdir')c.mv('/storage/emulated/0/Download/testdir','/storage/emulated/0/Download/testdir2')c.rm('/storage/emulated/0/Download/testdir2')txt=c.clipboard()c.clipboard(txt+" hello world")

依赖关系

  • python 2.7或python 3.5+

贡献

报告问题here

拉请求欢迎!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java ActiveMQ 5.9.0、Glassfish 3.1.2和MDB用于长时间的消息处理   从main调用的对象数组的Java字符串表示形式   java如何在iText 7中为泰国字母上方的双标记设置GPO   编译如果Java6工件是用Java6、7或8编译的,这有关系吗?   image Java KeyListener未检测到键盘输入   java找不到符号(构造函数)   java如何使Kafka使用者从特定主题分区读取Spring Boot   Java readLine()返回null   从CSV文件计算值时出现java系统错误   java如何避免处理程序。被调用后延迟(可运行运行)?   Java Do和While验证   java如何访问父类型的ArrayList中的子方法?   java如何使用Deepfirstsearch算法获得最高级别的搜索   xml使用SAX解析器Java正确构建字符串   Android片段中的java Toast显示空指针expn   如何在java中将多个文件合并到另一个新文件中?   java在运行时在JVisualVM中更改应用程序的标题   javajavax。命名。NoInitialContextException:需要在环境或sys中指定类名