push多张照片至Android手机

本文介绍如何使用Python通过三种不同方法(os.system, os.popen, subprocess.Popen)批量将照片推送到Android设备,并实现设备重启及照片删除功能。
部署运行你感兴趣的模型镜像

任务需求:往android手机中push多张照片

功能:
1、push照片
2、重启手机
3、删除push照片

使用语言:python 2.7

知识点
Python执行系统命令,os.system && os.popen && subprocess.Popen
1、os.system实现

import os

# 1.push photos
for i in range(1, 1001):
    cmd1 = "adb push D:\\test\\1.jpg /sdcard/DCIM/Camera/{}.jpg".format(i)
    os.system(cmd1)
    print i

# 2.finish push and reboot the phone
cmd2 = "adb shell reboot"
os.system(cmd2)

# 3.delete pushed photos
for j in range(1, 1001):
    cmd3 = " adb shell rm -r /sdcard/DCIM/Camera/{}.jpg".format(j)
    os.system(cmd3)
    print j

2、os.popen 实现

import os

# 1.push photos
for i in range(1, 1001):
    cmd1 = "adb push D:\\test\\1.jpg /sdcard/DCIM/Camera/{}.jpg".format(i)
    # print cmd1
    os.popen(cmd1)
    print i

# 2.finish push and reboot the phone
cmd2 = "adb shell reboot"
os.popen(cmd2)

# 3.delete pushed photos
for j in range(1, 1001):
    cmd3 = " adb shell rm -r /sdcard/DCIM/Camera/{}.jpg".format(j)
    os.popen(cmd3)
    print cmd3

3、subprocess.Popen实现

import subprocess

# 1.push photos
for i in range(1, 3):
    returnCode = subprocess.call("adb push D:\\test\\1.jpg /sdcard/DCIM/Camera/{}.jpg".format(i))
    assert returnCode == 0
    print i

# 2.finish push and reboot the phone
subprocess.call("adb shell reboot")


# 3.delete pushed photos
for j in range(1, 3):
    returnDelete = subprocess.call("adb shell rm -r /sdcard/DCIM/Camera/{}.jpg".format(j))
    assert returnDelete == 0

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 使用脚本将图片推送到手机的实现方法 要通过脚本将图片传输到手机,可以结合多种工具和技术来实现。以下是一个基于 Python 的实现方案,主要依赖于 `uiautomator2` 和 `adb` 工具。 #### 1. 环境准备 首先需要确保手机已启用开发者模式,并允许 USB 调试。然后在命令行中安装 `uiautomator2` 并初始化设备: ```bash pip install uiautomator2 python -m uiautomator2 init ``` 这一步会安装 ATX 应用程序到手机上,确保后续操作能够正常运行[^1]。 #### 2. 图片传输逻辑 通过 ADBAndroid Debug Bridge)可以直接将文件从电脑传输到手机。以下是具体步骤: - **使用 ADB 命令推送文件** 可以通过以下命令将图片从本地计算机传输到手机指定路径: ```bash adb push /path/to/local/image.jpg /sdcard/Pictures/ ``` 这里 `/path/to/local/image.jpg` 是本地图片路径,`/sdcard/Pictures/` 是手机上的目标目录。 - **Python 实现自动化推送** 使用 Python 脚本调用 ADB 命令完成图片推送: ```python import os import subprocess def push_image_to_phone(local_path, phone_path): try: result = subprocess.run(["adb", "push", local_path, phone_path], check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) print("图片推送成功:", result.stdout.decode()) except subprocess.CalledProcessError as e: print("图片推送失败:", e.stderr.decode()) # 示例调用 local_image_path = "/path/to/local/image.jpg" # 替换为本地图片路径 phone_image_path = "/sdcard/Pictures/" # 替换为目标手机路径 push_image_to_phone(local_image_path, phone_image_path) ``` #### 3. 扩展功能 如果需要更复杂的交互,例如自动打开图片或通知用户,可以结合 `uiautomator2` 实现: ```python import uiautomator2 as u2 def notify_user(device_id, message): d = u2.connect(device_id) d.toast.show(message, duration=5) # 显示短暂的通知消息 # 示例调用 device_id = "your_device_id" # 替换为实际设备ID notify_user(device_id, "图片已成功传输到手机!") ``` #### 4. 注意事项 - 确保手机与电脑连接正常,且 ADB 已正确配置。 - 如果手机未安装 ATX 应用程序,`uiautomator2` 将无法正常工作[^1]。 - 对于批量传输任务,可以封装上述逻辑为函数并循环调用。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值