通过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 Jersey消息筛选应返回多个值   捕获到java意外异常:com。ptc。pfc.实施。运行AsyncInstallTest时PFCEExceptions$XToolkitGeneralError   java Maven找不到apache RandomStringGenerator   java共享音频和文本   maven编译期间创建的java神秘目录   Java算法将2D数组向右移动,最后一列放在第一列   java是否可以在不激活插件的情况下触发RCPPlugin中的一系列操作?   握手期间java通信失败。是否有MySQL服务器运行在localhost:3306上   java如何为从多个表连接的对象定义Ignite缓存   java如何在我的网站上放置一个服务器类,以便我的客户机类可以从不同的计算机与之通信?   java jQuery是否有内置函数来执行长轮询?   如何在一个数组中编译多个Java文件   java JVM最大堆大小可以是动态的吗?   java JMAP命令,调试对象的错误为64位   java如何从契约状态获取stateAndRef?   安卓 MediaPlayer在状态4中调用java Start错误?   java如何使用ApacheKaraf/OSGi构建桌面应用程序?   classpath Linux path变量未在Java程序中正确设置   java activemq 5.9.0在Windows和Maven中失败   java Android未在库中创建文件夹