【大麦小米学量化】将list写入csv并读取还原为list(自选股操作)

2023-12-16 11:12

本文主要是介绍【大麦小米学量化】将list写入csv并读取还原为list(自选股操作),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、将list写入csv并读取还原为list(含源代码)
  • 二、进阶应用(自选股信息交换)
  • 总结


前言

有时候我们需要将list写入本地文件,作为交换信息由其它程序进行读取。就比如,做量化交易的时候,一个程序进行选股,一个程序读取选股信息后进行交易。当然也可以写入redis等,方法很多。但写入本地csv文件最简单,毕竟自选股的结果就是一个list就够了。

下面进入正文。

一、将list写入csv并读取还原为list(含源代码)

在网上找了好些个方法,最终修改为如下代码,这里做个分享,方便后来人。
这里踩的坑主要有:
1、list可以写入csv,但是每一个元素的字符都被逗号分割后存储,还原出来很麻烦;
2、list的每个元素写入csv后,都会有一个空行,在还原的时候多出来一个空的元素;

经过修改和完善,目前已经可以完全实现list写入csv并原样还原。为方便调用,将其包装为两个函数。具体代码如下:

import csvdef list2csv(data,filename='output.csv'):# 打开或创建CSV文件并指定写入模式, newline=''则不生成空行with open(filename, mode='w', newline='') as file:# 初始化CSV writer对象writer = csv.writer(file)# 遍历数据列表,逐行写入到CSV文件中for item in data:writer.writerows([item])print("已成功将列表写入CSV文件!")def csv2list(filename):ret_list = []# 打开CSV文件进行读取操作with open(filename) as f:f_reader = csv.reader(f)#循环文件中的每一行for row in f_reader:# print(row)ret_list.append(''.join(row)) print("成功从CSV文件中读取数据并转换为列表形式。")return ret_listif __name__ == "__main__": data = ['300750','300150','600450','601068.SH']list2csv(data)ret = csv2list(filename='output.csv')print(ret)
已成功将列表写入CSV文件!
成功从CSV文件中读取数据并转换为列表形式。
['300750', '300150', '600450', '601068.SH']
请按任意键继续. . .

二、进阶应用(自选股信息交换)

比如我们通过pywencai完成选股(【大麦小米学量化】通过pywencai访问同花顺问财接口实现智能选股),并将股票代码写入一个固定路径和文件名的csv文件,后边再进行读取还原。具体代码如下:

if __name__ == "__main__": import pywencaiquery_str = '非停盘;非ST;连涨3天涨幅1%-4%;均线多头排列;无长上影线'# 根据需要自行修改,此处仅做演示,不做交易参考。df = pywencai.get(query=query_str, sort_key='股票代码', sort_order='asc', perpage=10 )print(df)code_list = df['股票代码'].values.tolist()print(code_list)list2csv(code_list,filename='mystock.csv')mystock = csv2list(filename='mystock.csv')print(mystock)

运行结果如下:可以看到还原成list与原始信息一模一样。

        股票代码  股票简称    最新价 交易状态[20231215]  ... 最低价:前复权[20231215] 收盘价:前复权[20231213] market_code    code
0  000782.SZ  美达股份   5.83             交易  ...              5.74              5.65          33  000782
1  831304.BJ  迪尔化工   7.19             交易  ...              6.74              6.46         151  831304
2  831834.BJ  三维股份   7.43             交易  ...              7.09              7.08         151  831834
3  832225.BJ  利通科技  17.62             交易  ...             17.10             17.27         151  832225
4  832419.BJ  路斯股份  10.97             交易  ...             10.64             10.36         151  832419
5  832522.BJ  纳科诺尔  20.96             交易  ...             20.24             20.33         151  832522
6  833580.BJ  科创新材   7.43             交易  ...              7.20              7.05         151  833580
7  834415.BJ  恒拓开源   6.38             交易  ...              6.13              6.14         151  834415
8  834639.BJ  晨光电缆   5.36             交易  ...              5.13              5.09         151  834639
9  836260.BJ  中寰股份   8.41             交易  ...              8.12              8.07         151  836260[10 rows x 23 columns]
['000782.SZ', '831304.BJ', '831834.BJ', '832225.BJ', '832419.BJ', '832522.BJ', '833580.BJ', '834415.BJ', '834639.BJ', '836260.BJ']
已成功将列表写入CSV文件!
成功从CSV文件中读取数据并转换为列表形式。
['000782.SZ', '831304.BJ', '831834.BJ', '832225.BJ', '832419.BJ', '832522.BJ', '833580.BJ', '834415.BJ', '834639.BJ', '836260.BJ']
请按任意键继续. . .

总结

为了快速实现信息交换,博主尝试了很多方法,这个方法既简单,需要的代码也最少。极容易上手也不容易出错。

如果有人说我要保存成dict,可以移步到博主TOML的文章。
【TOML配置文件】配置文件我用TOML!人性化,少出错!

这篇关于【大麦小米学量化】将list写入csv并读取还原为list(自选股操作)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/500255

相关文章

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

使用Python的requests库来发送HTTP请求的操作指南

《使用Python的requests库来发送HTTP请求的操作指南》使用Python的requests库发送HTTP请求是非常简单和直观的,requests库提供了丰富的API,可以发送各种类型的HT... 目录前言1. 安装 requests 库2. 发送 GET 请求3. 发送 POST 请求4. 发送

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成

Python使用python-pptx自动化操作和生成PPT

《Python使用python-pptx自动化操作和生成PPT》这篇文章主要为大家详细介绍了如何使用python-pptx库实现PPT自动化,并提供实用的代码示例和应用场景,感兴趣的小伙伴可以跟随小编... 目录使用python-pptx操作PPT文档安装python-pptx基础概念创建新的PPT文档查看

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据