1 #coding=utf-8

2

3 #读取'[wait]'开头的csv文件

4 #copyright @ WangXinsheng

5 #http://www.cnblogs.com/wangxinsheng/

6 importos7 importgzip8 importre9 importhttp.cookiejar10 importurllib.request11 importurllib.parse12 importtime13 importdatetime14

15 defgetOpener(head):16 #deal with the Cookies

17 cj =http.cookiejar.CookieJar()18 pro =urllib.request.HTTPCookieProcessor(cj)19 opener =urllib.request.build_opener(pro)20 header =[]21 for key, value inhead.items():22 elem =(key, value)23 header.append(elem)24 opener.addheaders =header25 returnopener26

27 defungzip(data):28 try: #尝试解压

29 print('正在解压.....')30 data =gzip.decompress(data)31 print('解压完毕!')32 except:33 print('未经压缩, 无需解压')34 returndata35

36 #常量

37 header ={38 #'Connection': 'Keep-Alive',

39 'Accept': '*/*',40 'Accept-Language': 'zh-CN,zh;q=0.8',41 'User-Agent': 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36',42 'Accept-Encoding': 'gzip, deflate',43 'Host': 'yahoo.com',44 'Referer' : 'http://www.yahoo.com'

45 }46 priceUrl = 'http://table.finance.yahoo.com/table.csv?\47 s={%1}&d={%2}&e={%3}\48 &f={%4}&g=d&a={%5}&b={%6}&c={%7}&ignore=.csv'

49 #%1:000001.sz

50 #END: %2:月-1 %3:日-1 %4:年

51 #STRAT: %5:月-1 %6:日 %7:年

52

53

54 path=r'.'

55 files =os.listdir(path)56 files.sort()57 out=[]58

59 for f infiles:60 if(f.startswith('[wait]') and

61 f.endswith('.csv')):62 #读取文件

63 print('读取文件:'+path+'/'+f)64

65 f=open(path+'/'+f,'rt')66 infos =f.readlines()67 f.close()68

69 i =070 add =False71 for info ininfos:72 if(i==0):73 i=i+1

74 info = info.replace('\n','')+',"一天后","二天后","三天后","四天后","五天后"\n'

75 out.append(info)76 continue

77 elif(len(info.split(','))>9):78 out.append(info)79 continue

80 else:81 #确认需要取的数据范围

82 tmp = info.split(',')83 try:84 timeArray = time.strptime(tmp[0], "%Y-%m-%d")85 except:86 timeArray = time.strptime(tmp[0], "%Y/%m/%d")87 timeStamp =int(time.mktime(timeArray))88 fromDay =datetime.datetime.utcfromtimestamp(timeStamp)89 fromDay = fromDay + datetime.timedelta(days = 1)90 endDay = fromDay + datetime.timedelta(days = 15)91 code = tmp[1].replace('"','').replace("'","")92 if(code.startswith('6')):93 code = code +'.ss'

94 else:95 code = code +'.sz'

96 url = priceUrl.replace('{%1}',code).replace('{%2}',str(endDay.month-1))97 url = url.replace('{%3}',str(endDay.day)).replace('{%4}',str(endDay.year))98 url = url.replace('{%5}',str(fromDay.month-1)).replace('{%6}',str(fromDay.day))99 url = url.replace('{%7}',str(fromDay.year))100 print('抓取URL:'+url)101

102 #通过雅虎获取价格

103 dd = ''

104 try:105 opener =getOpener(header)106 op =opener.open(url)107 data =op.read()108 data =ungzip(data)109 dd =data.decode()110 except:111 print('网络抓取失败')112 out.append(info)113 continue

114 #计算涨跌幅百分比

115 if(dd!=''):116 dataInfo = dd.split('\n')117 j=0118 dayCount =0119 startPrice =0120 for x in range(len(dataInfo)-1,0,-1):121 #处理数据

122 if(dataInfo[x]==''):123 continue

124 #print(dataInfo[x])

125 if(dayCount>5):126 break

127 di =dataInfo[x]128 if(dayCount==0):129 startPrice = float(di.split(',')[4])130 elif(int(di.split(',')[5])!=0):131 add =True132 closeP = float(di.split(',')[4])133 info = info.replace('\n','')+',"'+str(round((closeP-startPrice)/startPrice*100,2))+'%['+str(closeP)+']"'

134 #print(info)

135 if(dayCount==0 or int(di.split(',')[5])!=0):136 dayCount=dayCount+1

137

138 if(add):139 out.append(info+'\n')140 #print(out)

141 continue

142 #输出

143 ff = open(path+'/'+f.name.replace('[wait]','[处理完了]'),'w')144 for o inout:145 ff.write(o)146 ff.close()147 print('处理完了\n文件地址:'+path+'/'+f.name.replace('[wait]','[处理完了]'))148 else:149 continue

python筛选股票5日线以上_[python]沪深龙虎榜数据进一步处理,计算日后5日的涨跌幅...相关推荐

  1. python筛选股票5日线以上_使用python求股价的移动均线(如5日线/10日线)的方法...

    废话不多,直接上代码 def moving_average(array,n): #array为每日收盘价组成的数组, # n可以为任意正整数,按照股市习惯,一般设为5或10或20.30.60等 mov ...

  2. python 通达信板块_[python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上...

    将沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上 原理:python读取前一次处理完的计算5日后涨跌幅输出的csv文件 文件名前加"[paint]" 安照通达信的画图文件和板 ...

  3. python调用通达信数据_[python]沪深龙虎榜数据导入通达信的自选板块并标注于k线图上...

    [python] 沪深龙虎榜数据导入通达信的自选板块, 并标注于 K 线图上 1 #coding=utf-8 2 3 # 读取 '[paint]' 开头的 csv 文件 4 #copyright @ ...

  4. [python]数据整理,将取得的众多的沪深龙虎榜数据整一整

    将昨日取得的众多的沪深龙虎榜数据整一整 提取文件夹内所有抓取下来的沪深龙虎榜数据,整理出沪深两市(含中小创)涨幅榜股票及前5大买入卖出资金净值,保存到csv文件 再手动使用数据透视表进行统计 原始数据 ...

  5. python龙虎榜数据_[python]数据整理,将取得的众多的沪深龙虎榜数据整一整

    1 #coding=utf-8 2 3 importre4 importos5 importtime6 importdatetime7 8 defwriteFile(file,stocks,BS,da ...

  6. python 通达信数据_[python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上...

    1 #coding=utf-8 2 3 #读取'[paint]'开头的csv文件 4 #copyright @ WangXinsheng 5 #http://www.cnblogs.com/wangx ...

  7. python 通达信k线_[python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上...

    1 #coding=utf-8 2 3 #读取'[paint]'开头的csv文件 4 #copyright @ WangXinsheng 5 #http://www.cnblogs.com/wangx ...

  8. 通达信行情数据获取--python_[python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上...

    1 #coding=utf-8 2 3 #读取'[paint]'开头的csv文件 4 #copyright @ WangXinsheng 5 #http://www.cnblogs.com/wangx ...

  9. python筛选股票_GitHub - sundroid/stock_pick: 这时一个通过设定选股条件来帮我们筛选股票的python程序...

    stock_pick 这是一个通过设定选股条件来帮我们筛选股票的python程序,每个py文件里面都有详细的注释 最近炒股是买什么就跌,一直是亏损,作为学过python的人来讲怎么能容忍,之前也炒过股 ...

最新文章

  1. Selenium 页面自动化测试 面试 问题汇总
  2. spring基础Bean管理基于xml注入
  3. SpringCloud面试题及答案
  4. c替代if else_答应我,别再if/else走天下了可以吗
  5. [Ext JS]3.2.3 下拉选项框 Combobox
  6. Java垃圾回收jconsole分析
  7. ubuntu 12.04 php升级,Ubuntu下如何升级到PHP7.4的方法步骤
  8. Spring源码之BeanDefinitionRegistryPostProcessor内部执行流程
  9. Win7下PDF文件无法显示缩略图的解决方法
  10. Qt配置opencv
  11. 谷歌:AI系统需要“自我怀疑”能力,方能作出更好的决定!
  12. 第十四届教育技术与计算机国际会议新增SSCI, ESCI期刊
  13. 编程语言Python为什么这么火?
  14. 通过 Docker 化一个博客网站来开启我们的 Docker 之旅
  15. DataTable常用数据筛选方法
  16. nyoj 543 遥控器 第五届河南省程序设计大赛
  17. Web应用防火墙是什么?有哪些功能?
  18. 数学建模——BP神经网络学习笔记
  19. 重学 Java 设计模式:实战组合模式「营销差异化人群发券,决策树引擎搭建场景」
  20. 海思WiFi IOT 芯片方案介绍!

热门文章

  1. 想搭建一个专属于你的网站吗??新手向超详细攻略
  2. cheat sheet 打包打印版大全python R machine learning
  3. vim ctrl + s 终端假死?
  4. 成长笔记(个人心路历程)
  5. 计算机应用基础心得体会300字,网络远程学习的心得体会
  6. android+桌面歌词,Android6.0系统适配桌面歌词效果
  7. oracle的经典总结
  8. 读List源码之Vector,ArrayList,LinkedList
  9. 从国内跳槽至新加坡工作的经验分享
  10. Required view 'XXX' with ID XXX for field 'xxx' was not found