lanmor_699 2022-09-30 13:37 采纳率: 78.9%
浏览 36
已结题

python只调用函数运行的结果,而不重复调用函数

问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
import pandas as pd
import os
import pyautogui
import time
#查找未下载的文件名
def find_undownloadcode():
    # 1.利用OS库遍历文件夹所有的文件名
    downloaded_filenames = os.listdir("F:\\gupiaoziliao\\managerstock\\")
    # 2.读取excel所有的股票代码
    pd1 = pd.DataFrame(pd.read_excel("F:\\gupiaoziliao\\沪深A股.xlsx"))
    all_stockcodes = list(pd1['证券代码'])
    # 3.删除已下载的文件名
    i = 0
    while i < len(all_stockcodes):
        if all_stockcodes[i] in downloaded_filenames:
            del all_stockcodes[i]
            i -= 1
        i += 1
    return all_stockcodes
undownload_codes = find_undownloadcode()
我能想到的解答思路

我能想到的是先将函数运行结果存入到excel,用的时候直接从excel中调用,但是感觉有点麻烦,不知道有没有其他的方法,不用把数据导出,就能达到这种效果的

我想要达到的结果

利用上述代码,得出未下载的代码,后面一直调用undownload_codes列表里面的数据即可,而不用重复运行find_undownloadcode函数

  • 写回答

4条回答 默认 最新

  • 於黾 2022-09-30 13:54
    关注

    运行结果不是在all_stockcodes里吗,不是return回来了吗,你放内存里放着就行,为什么要存excel?
    你就搞个全局变量来接函数的返回值,里面存的不就是all_stockcodes了吗
    一定是全局变量,不要局部变量,否则函数执行完变量释放了你又找不到这个值了
    总之变量不释放这个值就一直在,不用存来存去的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 10月8日
  • 已采纳回答 9月30日
  • 修改了问题 9月30日
  • 创建了问题 9月30日