lanmor_699 2022-09-18 08:14 采纳率: 78.9%
浏览 961
已结题

cannot unpack non-iterable NoneType object

问题遇到的现象和发生背景

运用pyautogui自动下载软件上的资料,为什么遍历代码列表,显示不可迭代的对象

用代码块功能插入代码,请勿粘贴截图

```python
import pyautogui
import pandas as pd
pyautogui.PAUSE = 1


#读取全部A股(标的股票代码)excel
data_read = pd.read_excel("F:\\gupiaoziliao\\全部A股.xlsx")
#清洗证券代码,去掉'.'和字母,只保留数字
code_column = list(data_read['证券代码'])
for i in range(len(code_column)):
    code_column[i] = code_column[i].split('.')[0]#先分割,再取子列表中的第一个元素
# 1.点击ifind图标
pyautogui.click(175,1055,button = 'left')

# 1.点击搜索框
def dianjidaimasousuokuang():
    #在搜索框内输入股票代码,并按回车键
    screen_img = pyautogui.screenshot()
    screen_img.save('F:\\PythonData\\image\\screen_img.png')
    left, top, width, height = pyautogui.locateOnScreen('F:\\PythonData\\image\\sousuokuang.png')
    center = pyautogui.center((left, top, width, height))
    pyautogui.click(center)
# 2.输入代码,并按回车键
def shurudaima(code):
    pyautogui.typewrite(code, 0.5)
    pyautogui.press('enter')

# 3.点击导出数据按钮
def dianjidaochushuju():
    screen_img = pyautogui.screenshot()
    screen_img.save('F:\\PythonData\\image\\screen_img.png')
    left, top, width, height = pyautogui.locateOnScreen('F:\\PythonData\\image\\daochushuju.png')
    center = pyautogui.center((left, top, width, height))
    pyautogui.click(center)

# 4. 点击路径输入框
def dianjibaocunlujing():
    screen_img = pyautogui.screenshot()
    screen_img.save('F:\\PythonData\\image\\screen_img.png')
    left, top, width, height = pyautogui.locateOnScreen('F:\\PythonData\\image\\baocun\\baocunweizhi.png')
    center = pyautogui.center((left, top, width, height))
    pyautogui.click(center)
# 5.输入保存路径
def shurulujing():
    pyautogui.typewrite('F:\\gupiaoziliao', 0.5)
    pyautogui.press('space')
# 6.点击转到按钮
def dianjizhuandao():
    screen_img = pyautogui.screenshot()
    screen_img.save('F:\\PythonData\\image\\screen_img.png')
    left, top, width, height = pyautogui.locateOnScreen('F:\\PythonData\\image\\baocun\\zhuandao.png')
    center = pyautogui.center((left, top, width, height))
    pyautogui.click(center)

# 7.点击文件名输入框
def dianjiwenjianming():
    screen_img = pyautogui.screenshot()
    screen_img.save('F:\\PythonData\\image\\screen_img.png')
    left, top, width, height = pyautogui.locateOnScreen(
        'F:\\PythonData\\image\\baocun\\wenjianming.png')
    center = pyautogui.center((left, top, width, height))
    pyautogui.click(center)
# 8.输入文件名,并点击空格键
def shuruwenjingming(code):
    pyautogui.typewrite(code+'-gongsijieshao', 0.5)
    pyautogui.press('space')

# 9.点击保存按钮
def dianjibaocunanniu():
    screen_img = pyautogui.screenshot()
    screen_img.save('F:\\PythonData\\image\\screen_img.png')
    left, top, width, height = pyautogui.locateOnScreen(
        'F:\\PythonData\\image\\baocun\\baocunjian.png')
    center = pyautogui.center((left, top, width, height))
    pyautogui.click(center)

#封装函数
i = 0
while i < len(code_column):
    # 1.点击搜索框
    dianjidaimasousuokuang()
    # 2.输入代码,并点击回车
    shurudaima(code_column[i])
    # 3.点击导出数据按钮
    dianjidaochushuju()
    #4.点击路径输入框
    dianjibaocunlujing()
    # 5.输入保存路径
    shurulujing()
    # 6.点击转到按钮
    dianjizhuandao()
    # 7.点击文件名输入框
    dianjiwenjianming()
    # 8.输入文件名,并点击空格键
    shuruwenjingming(code_column[i])
    # 9. 点击保存按钮
    dianjibaocunanniu()
    i += 1


运行结果及报错内容
Traceback (most recent call last):
  File "F:\PythonData\test.py", line 86, in <module>
    dianjidaochushuju()
  File "F:\PythonData\test.py", line 33, in dianjidaochushuju
    left, top, width, height = pyautogui.locateOnScreen('F:\\PythonData\\image\\daochushuju.png')
TypeError: cannot unpack non-iterable NoneType object
我想要达到的结果

img

展开全部

  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2022-09-18 08:27
    关注

    说明屏幕上没找到daochushuju.png这张图片,返回了None。确认屏幕已经出现那个图片的页面,可以将confidence设置低一些

    left, top, width, height = pyautogui.locateOnScreen('F:\PythonData\image\daochushuju.png',confidence=0.8)#还无法识别在继续减小一些
    搜索后才出现导出界面的话,需要time.sleep等待一下

    
    import time
    def shurudaima(code):
        pyautogui.typewrite(code, 0.5)
        pyautogui.press('enter')
        time.sleep(2)#等待2s
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 9月27日
  • 已采纳回答 9月20日
  • 创建了问题 9月18日

悬赏问题

  • ¥15 vscode开发micropython,import模块出现异常
  • ¥20 Excel数据自动录入表单并提交
  • ¥30 silcavo仿真,30分钟,只需要代码
  • ¥15 FastReport 怎么实现打印后马上关闭打印预览窗口
  • ¥15 利用3支股票数据估计其均值和方差的95%置信区间。
  • ¥15 微信小程序运行一项功能时,弹出未知错误弹框,检查代码没有问题
  • ¥15 ATAC测序生成self-pseudo replicates之前是否要进行去线粒体reads
  • ¥15 python模糊字匹配函数问题
  • ¥20 谁刷目标页面的uv记录器上数据,数据只记录跳转的数值
  • ¥30 数据库软件的安装方法
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部