导航:首页 > 源码编译 > python期货脚本指标源码

python期货脚本指标源码

发布时间:2022-07-03 23:08:17

‘壹’ 如何用python写一个抓取新浪财经网指定企业年报的脚本

代码如下:
1). xml可能的中文编码错误处理
def xml_Error_C(filename):
fp_xml=open(filename)
fp_x=''#中文乱码改正
for i in range(os.path.getsize(filename)):
i+=1
a=fp_xml.read(1)
if a=='&':
fp_xml.seek(-1,1)
if fp_xml.read(6)==' ':
i+=5
continue
else:
fp_xml.seek(-5,1)
fp_x+=a
fp_xml=open(filename,'w+')
fp_xml.write(fp_x)
fp_xml.flush()
fp_xml.close()

2). xml转xls
def Xmltoxls(xmlname,xlsname):
if os.path.getsize(xmlname)<1024:#小于1K,无该项数据
return False
wb=xlwt.Workbook(encoding='utf-8')
ws=wb.add_sheet('Table')
fp_xml=minidom.parse(xmlname)
root=fp_xml.documentElement
Row=root.getElementsByTagName('Row')
Data=root.getElementsByTagName('Data')
col_num=len(Data)/len(Row)
row_num= 0
for row in Row:
Data=row.getElementsByTagName('Data')
for i in range(col_num):
if len(Data[i].childNodes)==0:
ws.write(row_num,i,' ')
continue
ws.write(row_num,i,Data[i].childNodes[0].nodeValue.strip().encode('utf-8'))
row_num+=1
wb.save(xlsname)
return True上整体代码:
from xml.dom import minidom
import xlwt
import os,shutil
import time,urllib2
def Xmltoxls(xmlname,xlsname):
if os.path.getsize(xmlname)<1024:
return False
wb=xlwt.Workbook(encoding='utf-8')
ws=wb.add_sheet('Table')
fp_xml=minidom.parse(xmlname)
root=fp_xml.documentElement
Row=root.getElementsByTagName('Row')
Data=root.getElementsByTagName('Data')
col_num=len(Data)/len(Row)
row_num= 0
for row in Row:
Data=row.getElementsByTagName('Data')
for i in range(col_num):
if len(Data[i].childNodes)==0:
ws.write(row_num,i,' ')
continue
ws.write(row_num,i,Data[i].childNodes[0].nodeValue.strip().encode('utf-8'))
row_num+=1
wb.save(xlsname)
return True
def xml_Error_C(filename):
fp_xml=open(filename)
fp_x=''#中文乱码改正
for i in range(os.path.getsize(filename)):
i+=1
a=fp_xml.read(1)
if a=='&':
fp_xml.seek(-1,1)
if fp_xml.read(6)=='&nbsp;':
i+=5
continue
else:
fp_xml.seek(-5,1)
fp_x+=a
fp_xml=open(filename,'w+')
fp_xml.write(fp_x)
fp_xml.flush()
fp_xml.close()
def errorlog(error):
fp_error=open('errorlog.txt','a')
fp_error.write(error+' ')
fp_error.close
fp_code=open('stockcode..txt')
fp_basic=open('basicdata_url.txt')
temp='z:\temp.xml'
for line in fp_code:#设置代码起始位置
if line.split()[0]=='601958':
break
for line in fp_code:#遍历所有代码及名称
filepath='basicdata\'+line.split()[0]+line.split()[1].replace('*','&')#建立文件夹
if not os.path.isdir(filepath):
os.makedirs(filepath)
for url in fp_basic:#抓取所有数据并保存
url_f=url.split()[0]+line.split()[0]+('01' if int(line.split()[0])>599999 else '02')+'&exp=1'
print 'I am handle '+line+' '+url.split()[1]+' '+'data for you'
filename=filepath+'\'+line.split()[0]+' '+url.split()[1]+'.xls'
while True:#get xml data
try:
u=urllib2.urlopen(url_f)
time.sleep(0.3)
data=u.read()
f=open(temp,'w+')#保存文件
f.write(data)
f.flush()
f.close()
break
except :
print 'Network error,try latter!'
time.sleep(10)
while True:#xml data to xls data
if url.split()[1] in ['News','Notice','Subject']:
shutil.move(temp,filename) # os.rename("oldname","newname")
break
try:
xml_Error_C(temp)
Xmltoxls(temp,filename)
except IOError:
errorlog('No '+filename)
except:
shutil.move(temp,filename)
errorlog('Not Done '+filename)
break
time.sleep(0.2)
time.sleep(7)
fp_basic.seek(0)
print 'All data have been getted.'
fp_code.close()
fp_basic.close()


‘贰’ python脚本思路请教

f=open('文本')
data=f.readlines()
for i in data:
ip=i.split()[0]#获取ip,具体方法看ip在文本的设置

result=os.popen("ping %s"%i)
#判断结果

ping通的话再执行telnet测试

不通输出ip即可并写入到log
2跟一差不多。本机操作的话就os.popen,远程操作系统并执行命令的话通过paramiko也可以实现,具体方法都是基本的try except,自己尝试下即可

‘叁’ 求帮忙写一个python自动脚本完成以下步骤:

这个就用shell比较方便吧?
写一个shell脚本,比如shell.sh
startcluster start xyz
tarcluster put xyz /path/to/file/or/dir /path/on/remote/server
starcluster sshmaster xyz
mpicc abc
mpirun abc
然后在python里直接调用shell.sh
import subprocess
p = subprocess.Popen('/home/username/shell.sh',stdout=subprocess.PIPE)
print p.stdout.readlines()
或者如果你愿意的话,也可以直接用subprocess模块来调用所有的命令。
比如:
p = subprocess.Popen('startcluster start xyz',stdout=subprocess.PIPE)
然后逐个看看每个步骤的返回信息。

‘肆’ Python 如何写脚本

以Python2.7操作为例:

1、首先需要打开电脑桌面,按开始的快捷键,点击Python2.7如图所示的选项进入。

‘伍’ 我想知道如何查看python的源代码

查看脚本的话(python中部分函数是直接用C语言嵌入的,要在官网上搜C源码),可以使用Pycharm,或者其他IDLE,比如我想查看python中TensorFlow包的Session函数:

  1. 任意在pycharm内的一个.py文件中,输入这个函数

    import tensorFlow as tf #载入包并命名为tf

    tf.Session()

  2. 然后按住Ctrl按钮,左键单击Session,就自动打开了对应.py文件

另外一种方法是直接在python本地库中找对应的.py文件,(可以用help函数先搜索)

‘陆’ 想写个python脚本 range() 中我想手动输入数字变量。然后打印出来比如说5 6 7 8 9,要脚本代码

#coding=utf-8
x=int(raw_input('inputstartvalue:'))
y=int(raw_input('inputendvalue:'))
foriinrange(x,y):
printi,

python2.x 可用

‘柒’ 如何由python脚本执行生成的文本文档查看其py源代码

python也有反射和自省,可以用dir(object)获取对象的方法,具体可以参考dive into python这本书。

def info(object, spacing=10, collapse=1):
"""Print methods and doc strings.

Takes mole, class, list, dictionary, or string."""
methodList = [method for method in dir(object) if callable(getattr(object, method))]
processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)
print "\n".join(["%s %s" %
(method.ljust(spacing),
processFunc(str(getattr(object, method).__doc__)))
for method in methodList])

if __name__ == "__main__":
li = []
info(li)

‘捌’ 我现在想把自己写的python模块源代码封装成dll,然后在别的python脚本里调用,可以吗

可以的,只要把python模块转换成dll模块,利用Python自带的ctypes模块加载调用就行。

ctypes 是Python的外部函数库。它提供了与 C语言兼容的数据类型,并允许调用 DLL 或共享库中的函数。可使用该模块以纯 Python 形式对这些库进行封装。

ctypes导出了cdll对象,在 Windows 系统中还导出了windll和oledll对象用于载入动态链接库。通过操作这些对象的属性,你可以载入外部的动态链接库。cdll载入按标准的cdecl调用协议导出的函数,而windll导入的库按stdcall调用协议调用其中的函数。

(8)python期货脚本指标源码扩展阅读:

加载调用DLL的相关方法:

1、加载DLL

加载的时候要根据你将要调用的函数是符合什么调用约定的。

stdcall调用约定:两种加载方式

Objdll = ctypes.windll.LoadLibrary("dllpath")

Objdll = ctypes.WinDLL("dllpath")

cdecl调用约定:也有两种加载方式

Objdll = ctypes.cdll.LoadLibrary("dllpath")

Objdll = ctypes.CDLL("dllpath")

其实windll和cdll分别是WinDLL类和CDll类的对象。

2、调用dll中的方法

加载dll的时候会返回一个DLL对象(假设名字叫Objdll),利用该对象就可以调用dll中的方法。 e.g.如果dll中有个方法名字叫Add(注意如果经过stdcall声明的方法,如果不是用def文件声明的导出函数或者extern “C” 声明的话,编译器会对函数名进行修改,这个要注意。)

调用:nRet = Objdll.Add(12, 15) 即完成一次调用。

‘玖’ 求高手写一段Python脚本

阅读全文

与python期货脚本指标源码相关的资料

热点内容
喷油螺杆制冷压缩机 浏览:581
python员工信息登记表 浏览:377
高中美术pdf 浏览:161
java实现排列 浏览:513
javavector的用法 浏览:982
osi实现加密的三层 浏览:233
大众宝来原厂中控如何安装app 浏览:916
linux内核根文件系统 浏览:243
3d的命令面板不见了 浏览:526
武汉理工大学服务器ip地址 浏览:149
亚马逊云服务器登录 浏览:525
安卓手机如何进行文件处理 浏览:71
mysql执行系统命令 浏览:930
php支持curlhttps 浏览:143
新预算法责任 浏览:444
服务器如何处理5万人同时在线 浏览:251
哈夫曼编码数据压缩 浏览:428
锁定服务器是什么意思 浏览:385
场景检测算法 浏览:617
解压手机软件触屏 浏览:352