FAQ > 金融建模 > 第三方交互 > Python

Q:python交互的各个接口在远端调用天软中是否支持与本地交互    

  • A:1.TSLPy接口支持各个本地交互模型的使用。
      2.pyTSL接口目前只支持ExportFile及ImportFile模型进行本地交互,其它功能需要使用register_proc函数将python函数注册为天软函数使用。
      3、在交互脚本中存在路径代码时,应注意转义问题,如"\\"应该改用"/"或"\\\\"。

    接口说明
    FAQ:2019-05-08-应用专题-第三方交互07:天软平台和PYTHON的交互
    FAQ:天软pyTSL接口
    python中支持本地交互的部分模型列表
    本地交互模型模型说明TSLPy调用pyTSL调用
    ExportFile将数据导出为文件
    详情:FAQ:ExportFile
    支持支持
    ImportFile从文件中导入数据
    详情:FAQ:ImportFile
    支持支持
    ExportFile2将数据导出到指定Sheet、指定数据位置Range的excel文件
    详情:FAQ:ExportFile2
    支持不支持
    ImportFile2导入excel中指定Sheet的内容,可选择指定数据范围Range
    详情:FAQ:ImportFile2
    支持不支持
    ExecSQL执行SQL语句
    详情:FAQ:ExecSQL
    支持不支持
    WriteFile将数据写到本地文件
    详情:FAQ:WriteFile
    支持不支持
    ReadFile将本地的文件读取出来
    详情:FAQ:ReadFile
    支持不支持
    FileList列出目录
    详情:FAQ:FileList
    支持不支持
    FileSize取得文件大小
    详情:FAQ:FileSize
    支持不支持
    FileRename文件更名
    详情:FAQ:FileRename
    支持不支持
    FileTime取得文件的最后更新时间
    详情:FAQ:FileTime
    支持不支持
    SetFileTime设置文件的时间
    FAQ:SetFileTime
    支持不支持
    FileAge取得文件的时间
    详情:FAQ:FileAge
    支持不支持
    SetFileAge设置文件的时间
    详情:FAQ:SetFileAge
    支持不支持
    FileAttr取得文件的属性
    详情:FAQ:FileAttr
    支持不支持
    SetFileAttr设置文件的属性
    详情:FAQ:SetFileAttr
    支持不支持
    FileCopy文件拷贝
    详情:FAQ:FileCopy
    支持不支持
    FileDelete删除文件
    详情:FAQ:FileDelete
    支持不支持
    CreateDir创建目录
    详情:FAQ:CreateDir
    支持不支持
    RemoveDir删除目录
    详情:FAQ:RemoveDir
    支持不支持
    WriteToLog写日志
    详情:FAQ:WriteToLog
    支持不支持
    ReadExcelSheets从Excel文件中读出Sheets列表
    详情:FAQ:ReadExcelSheets
    支持不支持
    Sysdbfwrite将数据导出为DBF的格式的数据文件
    详情:FAQ:Sysdbfwrite
    支持不支持
    Sysdbfread读取本地DBF格式数据文件的内容
    详情:FAQ:Sysdbfread
    支持不支持

    使用范例
    TSLPy
    范例一:TSLPy接口调用天软代码导出数据到本地
    import sys
    sys.path.append("C:\Program Files\Tinysoft\Analyse.NET")
    import TSLPy3 as ts

    dt=ts.DefaultConnectAndLogin("sz_server")#远程登录,用自己配置的别名
    ts_str='''
      data:=rand(10,5);
      ret:=rdo2 exportfile(ftxls(),"","c:/test.xlsx",data);
      if ret then
        return 1;
      else
        return 0;
    '''
    data = ts.RemoteExecute(ts_str, {})[1]
    print(data)
    #结果:1 (表示数据导出成功,可以在c盘看到test.xlsx文件)

    范例二:TSLPy接口调用天软代码修改本地文件名称
    import sys
    sys.path.append("C:\Program Files\Tinysoft\Analyse.NET")
    import TSLPy3 as ts

    dt=ts.DefaultConnectAndLogin("sz_server")#远程登录,用自己配置的别名
    ts_str='''
      ret:=rdo2 FileRename("","C:/test.xlsx","C:/newtest.xlsx");
      if ret then
        return 1;
      else
        return 0;
    '''
    data = ts.RemoteExecute(ts_str, {})[1]
    print(data)
    #结果:1 (表示文件更名成功,可以在c盘看到test.xlsx文件更名为newtest.xlsx)

    pyTSL
    范例三:pyTSL接口调用python注册的天软函数导出文件到本地
    import pyTSL

    c = pyTSL.Client("user", "password", "tsl.tinysoft.com.cn", 443)
    c.login()
    ts_str='''
     data:=rand(10,5);
     ret:=rdo2 exportfile(ftxls(),"","c:/test.xlsx",data);
     if ret then
      return 1;
     else
      return 0;
    '''
    r=c.exec(ts_str)
    print(r.value())
    #结果:1 (表示数据导出成功,可以在c盘看到test.xlsx文件)

    范例四:pyTSL调用register_proc 方法将python函数注册为天软函数调用
    import pyTSL

    c = pyTSL.Client("user", "password", "tsl.tinysoft.com.cn", 443)
    c.login()

    def py_echo(filename, value):
      print(filename,value)
      return 1
    #使用register_proc 方法将 python 的 py_echo 函数注册为天软的py_echo 函数,使得交互语句中可直接rdo2调用。
    pyTSL.register_proc("py_echo", py_echo)
    ts_str='''
      a := rdo2 py_echo('1.csv',array(1,2,3));
      return a;
    '''
    r = c.exec(ts_str)
    print(r.value())
    #结果:1,已打印注册函数打印函数参数信息