我想work.py在执行一些初始化脚本后在Python中执行一个脚本init.py.
如果我正在寻找一个交互式会话,执行python -i init.py或设置PYTHONSTARTUP=/path/to/init.py会做的伎俩,但我希望执行另一个脚本.
由于这是经常发生的一般情况下(init.py设置环境等是一样的,所有的时间),我会非常不喜欢引用init.py的work.py.怎么可以这样做?如果我需要从脚本而不是从提示中获取此内容,是否会发生任何变化?
非常感谢你.
对于一个愚蠢的问题我很抱歉,但我找不到任何方法可以轻松地做到这一点.
我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) 我试图使用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 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 结尾的?
更新我确实查看了几个相关的问题,但找不到直接的问题来处理相同的问题。非常感谢
我有相同的代码,我偶尔从命令行运行它,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?
将子字符串列表与字符串列表相匹配的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)
有没有更好的东西,比如库函数,可以吸收其中一个维度?
非常感谢。
这听起来像是一个很愚蠢的问题。但是过去几天一直困扰着我。而且,我添加的标签不仅涉及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)
我想念什么?
我正在运行 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()方法,但我想不出一个好的方法来做到这一点。
我上课了
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 ×8
python-2.7 ×3
arrays ×1
boolean ×1
c ×1
c++ ×1
classname ×1
ctypes ×1
dataframe ×1
default ×1
dictionary ×1
ipython ×1
pandas ×1
pyodbc ×1
sql-server ×1
startup ×1
string ×1
subtraction ×1