小编gt6*_*89b的帖子

Python启动脚本

我想work.py在执行一些初始化脚本后在Python中执行一个脚本init.py.

如果我正在寻找一个交互式会话,执行python -i init.py或设置PYTHONSTARTUP=/path/to/init.py会做的伎俩,但我希望执行另一个脚本.

由于这是经常发生的一般情况下(init.py设置环境等是一样的,所有的时间),我会非常不喜欢引用init.pywork.py.怎么可以这样做?如果我需要从脚本而不是从提示中获取此内容,是否会发生任何变化?

非常感谢你.

python startup

5
推荐指数
2
解决办法
2万
查看次数

从一个pandas数据框中减去另一个列中的列

对于一个愚蠢的问题我很抱歉,但我找不到任何方法可以轻松地做到这一点.

pandas在Python 2.7中有两个数据框,由tenor索引:

In [136]: rates
Out[136]:
          A      A-    BBB+     BBB    BBB-      BB
3M   0.3150  0.3530  0.4960  0.6460  0.7910  1.9070
6M   0.3070  0.3560  0.5330  0.6740  0.8740  1.9170
1Y   0.3810  0.4470  0.6380  0.8970  1.1220  1.9900
2Y   0.7040  0.8690  1.0080  1.3510  1.6150  2.3230
3Y   1.0650  1.2870  1.4350  1.7950  2.0960  2.7590
4Y   1.5980  1.7920  1.9540  2.2660  2.6600  3.5890
5Y   2.0890  2.2660  2.4390  2.7890  3.2200  4.3280
7Y   2.9760  3.2010  3.2500  3.7600  4.3790  5.1970
8Y   3.3410  3.5410  3.5920  4.1270  4.7610  5.5170
9Y   3.5870 …
Run Code Online (Sandbox Code Playgroud)

python subtraction dataframe python-2.7 pandas

5
推荐指数
1
解决办法
7732
查看次数

pyodbc不会抛出SQL Server错误

我试图使用pyodbc(使用Python 2.7)调用存储过程将记录插入SQL Server 2012表.我正在通过一张临时桌子.

我抛弃了我的sql,当通过SQL Server管理控制台执行时,它生成了以下外键错误:

Msg 547, Level 16, State 0, Procedure spInsertBondTickerValues, Line 26
The INSERT statement conflicted with the FOREIGN KEY constraint "FK__BondTickerValue__756D6ECB".
The conflict occurred in database "QuantDev", table "dbo.Tickers".
The statement has been terminated.
Run Code Online (Sandbox Code Playgroud)

但是,pyodbc没有提出异常.如何测试生成的游标或连接以了解发生了问题,以及如何获取错误消息?

非常感谢你.

编辑这是完整的SQL文本:

DECLARE @rawTbl [dbo].TickerValueTableType
INSERT INTO @rawTbl (Ticker, BBName, LastValue, ValueTime, SourceDescr) VALUES
('IBM', 'Equity', 179.230000, '2013-11-01 00:00:00.000000', 'Bloomberg'),
('SPX', 'Index', 1803.710000, '2013-12-10 00:00:00.000000', 'Bloomberg')
EXEC [dbo].spInsertBondTickerValues @rawTbl
Run Code Online (Sandbox Code Playgroud)

编辑2这是相关的Python代码:

def execSQLwithCommit(self, sql):
    cursor …
Run Code Online (Sandbox Code Playgroud)

python sql-server pyodbc

5
推荐指数
1
解决办法
2387
查看次数

Python ctypes:传递字符串数组

我在 Python 2.7 中有一个字符串数组,我想通过以下方式将其传递给 C 函数ctypes

unsigned int SetParams(unsigned int count, const char **params)
Run Code Online (Sandbox Code Playgroud)

所以我可以在python中定义参数:

import ctypes as ct
lib = ct.cdll.LoadLibrary('...')
lib.SetParams.restype  = ct.c_uint
lib.SetParams.argtypes = [ct.c_uint, ct.POINTER(ct.c_char_p)]
Run Code Online (Sandbox Code Playgroud)

但是现在当我在 Python 函数中获得一组参数时,我想在上面的库调用中使用它,我该如何实际调用它?我在想这样的事情:

def setParameters(strParamList):
    numParams    = len(strParamList)
    strArrayType = ct.c_char_p * numParams
    strArray     = strArrayType()
    for i, param in enumerate(strParamList):
        strArray[i] = param
    lib.SetParams(numParams, strArray)
Run Code Online (Sandbox Code Playgroud)

我刚刚开始ctypes并想知道是否有更自动化的方法来做到这一点?分配strArray[i] = param实际上是否正在重新分配?如果是这样,这似乎很昂贵——有没有办法只将字符串指针指向 Python 分配的缓冲区,或者它们不是以 NULL 结尾的?

更新我确实查看了几个相关的问题,但找不到直接的问题来处理相同的问题。非常感谢

c python arrays string ctypes

5
推荐指数
1
解决办法
1881
查看次数

测试 IPython 是否存在

我有相同的代码,我偶尔从命令行运行它,python source.py偶尔将其复制/粘贴到交互式 IPython 中。我想以两种方式执行稍微不同的代码,并尝试将差异嵌入到以下代码块中:

try:
    __IPYTHON__
    # do IPython-mode code
except NameError:
    # do script-mode code
Run Code Online (Sandbox Code Playgroud)

我知道在 Python 中这是一种常见的技术,但它搞砸了 PyCharm 中的自动标记,我希望找到一些更有吸引力的方法来测试 IPython 的存在,也许通过测试'__IPYTHON__' in ...或类似的方法。然而,我看到这个符号既不在locals()也不在 中globals()。有没有其他地方可以测试它的存在,或者任何其他更常规的测试,而不直接使用异常?

我正在使用 Python 2.7.11 和 IPython 5.1.0。非常感谢。

更新相关但无帮助:How do I check if a variable isn’t?

python ipython

3
推荐指数
1
解决办法
559
查看次数

将子字符串列表与Python中的字符串列表进行匹配

将子字符串列表与字符串列表相匹配的Pythonic方法是什么,如下所示:

if 'sub1' in str1 or 'sub2' in str1 or ... 'subN' in str1 or\
   'sub1' in str2 or 'sub2' in str2 or ... 'subN' in str2 or\
   ...
   'sub1' in strM or 'sub2' in strM or ... 'subN' in strM:
Run Code Online (Sandbox Code Playgroud)

一种方法是将它们与列表理解结合起来,如下所示:

strList = [str1, str2, ..., strM]
subList = ['sub1', ..., 'subN']
if any(sub in str for sub in subList for str in strList):
Run Code Online (Sandbox Code Playgroud)

有没有更好的东西,比如库函数,可以吸收其中一个维度?

非常感谢。

python string-matching

2
推荐指数
1
解决办法
2890
查看次数

当我们可以使用int时,为什么bool存在?

这听起来像是一个很愚蠢的问题。但是过去几天一直困扰着我。而且,我添加的标签不仅涉及C ++编程语言。我的问题是。在《计算机科学》中,布尔(布尔)数据类型只有两个可能的值。'对或错'。而且,在计算机科学中,1为true,0为false。那么为什么布尔值根本存在?为什么不使用只能返回两个可能值(例如1或0)的整数。

例如 :

bool mindExplosion = true; // true!
int mindExplosion = 1; // true!!
// or we can '#define true 1' and it's the same right?
Run Code Online (Sandbox Code Playgroud)

我想念什么?

c++ boolean

2
推荐指数
2
解决办法
130
查看次数

带有默认键的 Python 字典

我正在运行 Python 2.7.10。

我想让字典返回存储在特定键中的值,以防丢失项目。例如,这样的事情:

myD = dict(...)
return myD[key] if key in myD else myD[defaultKey]
Run Code Online (Sandbox Code Playgroud)

只是为了确保清楚,我想调用myD[key]并返回正确的值,而不需要if...else在我的代码中添加额外的值...

这不完全是什么defaultdict(因为它需要一个函数作为默认调用),也不完全是什么dict.setdefault()myD.get(key, ???)似乎也没有帮助。我可能应该继承dictordefaultdict和重载__init__()missing()方法,但我想不出一个好的方法来做到这一点。

python dictionary default default-value python-2.7

1
推荐指数
1
解决办法
3619
查看次数

使用Python类名来定义类变量

我上课了

class MyClass(object):
    ClassTag = '!' + 'MyClass'
Run Code Online (Sandbox Code Playgroud)

而不是显式分配'MyClass'我想使用一些构造来获取类名.如果我在一个类函数中,我会做类似的事情

@classfunction
def Foo(cls):
    tag = '!' + cls.__class__.__name__
Run Code Online (Sandbox Code Playgroud)

但是这里我在类范围内但不在任何函数范围内.解决这个问题的正确方法是什么?

非常感谢你

python classname python-2.7

1
推荐指数
1
解决办法
54
查看次数