Questions tagged «python»

Python是一种多范式,动态类型的多用途编程语言。它旨在快速学习,理解和使用并强制使用干净统一的语法。请注意,Python 2自2020年1月1日起已不再受支持。不过,对于特定于版本的Python问题,请添加[python-2.7]或[python-3.x]标签。使用Python变体或库(例如Jython,PyPy,Pandas,Numpy)时,请将其包含在标签中。

5
Putty中的箭头键返回^ [[A ^ [[D ^ [[B而不是移动光标
有没有其他人在PuTTy中遇到此错误? 例如,现在按下向上键会产生: >>> ^[[A Google不允许您搜索特殊字符,因此我很困惑地找到此问题的现有版本。 编辑: 因此,这是在我粘贴了一些unicode之后发生的(当时,我认为翻译已经设置为utf-8)。 我已经检查了“更改设置”对话框中与其他打开的“ PuTTy”窗口不同的设置,但是这些设置似乎是相同的。 编辑2: 重新启动PuTTy可以解决此问题,但仍然很麻烦。 编辑3: 如何复制完全相同的错误: 打开腻子终端到Linux PC(我正在使用RedHat) 打开Python 2.7。*-使用命令python2.7(注意:错误不会出现在2.6中) import codecs 现在,使用箭头键,这些奇怪的字符就会出现。

7
动态更改日志级别,而无需重新启动应用程序
是否可以在不重新启动应用程序的情况下使用python中的fileConfig更改日志级别。如果无法通过fileConfig实现,是否还有其他方法可以获得相同的结果? 更新:这是针对服务器上运行的应用程序,我希望系统管理员能够更改应用程序在运行时选择的配置文件,并动态更改日志级别。当时我正在使用gevent,因此我将代码添加为使用inotify来选择对配置文件进行更改的答案之一。
70 python  logging  gevent 

2
建议为类型化的内存视图分配内存的方法是什么?
有关类型化内存视图的Cython文档列出了分配给类型化内存视图的三种方式: 从原始的C指针, 从一个 np.ndarray和 从cython.view.array。 假设我没有从外部将数据传递到cython函数中,而是想分配内存并将其返回为np.ndarray,那么我选择了哪些选项?还假设该缓冲区的大小不是编译时常量,即我无法在堆栈上分配,但需要malloc为选项1。 因此,这三个选项看起来像这样: from libc.stdlib cimport malloc, free cimport numpy as np from cython cimport view np.import_array() def memview_malloc(int N): cdef int * m = <int *>malloc(N * sizeof(int)) cdef int[::1] b = <int[:N]>m free(<void *>m) def memview_ndarray(int N): cdef int[::1] b = np.empty(N, dtype=np.int32) def …

8
在Python中获取生成器的第n个项
有没有一种语法更简洁的方式编写以下内容? gen = (i for i in xrange(10)) index = 5 for i, v in enumerate(gen): if i is index: return v 生成器应该具有一个gen[index]表达式,该表达式充当列表,但在功能上与上述代码相同,这似乎是很自然的。
70 python  generator 

2
在导入语句之前设置pythonpath
我的代码是: import scriptlib.abc import scriptlib.xyz def foo(): ... some operations 但是scriptlib在其他目录中,因此我必须将该目录包含在环境变量“ PYTHONPATH”中。 无论如何,在执行导入语句之前,我首先可以在环境变量“ PYTHONPATH”中添加scriptlib目录: import sys sys.path.append('/mypath/scriptlib') import scriptlib.abc import scriptlib.xyz def foo(): ... some operations 如果是这样,则仅是该命令提示符的值还是全局的? 提前致谢

7
启用详细日志记录的更简单方法
如果我--verbose从命令行启用并且脚本中包含以下内容,则想添加调试打印语句测试。 logger.info("test") 我经历了以下问题,但无法获得答案... 如何在脚本中实现--verbose或-v选项? Python日志记录-DEBUG下方是否有内容?

2
遍历python正则表达式匹配
这必须比我所遇到的要容易。我的问题是变成一个看起来像这样的字符串: ABC12DEF3G56HIJ7 进入 12 * ABC 3 * DEF 56 * G 7 * HIJ 而且,我一生无法使用REGEX匹配设计正确的循环集。问题的症结在于代码必须是完全通用的,因为我无法假设[A-Z]片段将有多长时间,[0-9]片段也将有多长时间。 感谢您的协助!

5
使用Python从JSON获取值
当我尝试从JSON字符串检索值时,它给了我一个错误: data = json.loads('{"lat":444, "lon":555}') return data["lat"] 但是,如果我遍历数据,它将为我提供元素(lat和lon),而不是值: data = json.loads('{"lat":444, "lon":555}') ret = '' for j in data: ret = ret + ' ' + j return ret 哪个返回: lat lon 我需要怎么做才能得到latand的值lon?(444和555)

8
在python中模拟按值传递行为
我想模拟python中的按值传递行为。换句话说,我想绝对确保我编写的函数不会修改用户提供的数据。 一种可能的方法是使用深层复制: from copy import deepcopy def f(data): data = deepcopy(data) #do stuff 有没有更有效或更Python的方法来实现此目标,对传递的对象进行尽可能少的假设(例如.clone()方法) 编辑 我知道技术上python中的所有内容都是按值传递的。我对模拟行为很感兴趣,即确保我不会弄乱传递给函数的数据。我猜最一般的方法是使用其自身的克隆机制或Deepcopy来克隆所讨论的对象。

8
是什么使集合比列表更快?
python Wiki说:“使用集和字典进行成员资格测试比搜索序列O(n)更快,O(1)。测试“ a in b”时,b应该是集合或字典,而不是列表或元组。” 每当速度在我的代码中很重要时,我就一直使用集代替列表,但是最近我一直在想为什么集比列表快得多。任何人都可以解释一下,或者让我指向可以解释这一点的消息源,这是为了在python中更快地进行设置吗?
70 python  list  set 

8
与setup.py和软件包共享软件包版本的正确方法是什么?
使用distutils,setuptools等,在setup.py以下位置指定软件包版本: # file: setup.py ... setup( name='foobar', version='1.0.0', # other attributes ) 我希望能够从包中访问相同的版本号: >>> import foobar >>> foobar.__version__ '1.0.0' 我可以将其添加__version__ = '1.0.0'到包的__init__.py中,但是我还想在包中包括其他导入,以创建包的简化接口: # file: __init__.py from foobar import foo from foobar.bar import Bar __version__ = '1.0.0' 和 # file: setup.py from foobar import __version__ ... setup( name='foobar', version=__version__, # other …


7
用于MySQL的转义字符串Python
我使用Python和MySQLdb下载网页并将其存储到数据库中。我的问题是我无法将复杂的字符串保存在数据库中,因为它们没有正确地转义。 Python中是否有一个我可以用来为MySQL转义字符串的函数?我尝试使用'''(三重简单引号)和""",但没有用。我知道PHP具有mysql_escape_string(),在Python中是否类似? 谢谢。
70 python  mysql  escaping 

4
setup.py并将文件添加到/ bin /
我无法弄清楚如何使setup.py添加一个纸条给用户/bin或/usr/bin或什么的。 例如,我想添加一个myscript.py,/usr/bin以便用户可以myscript.py从任何目录调用。
70 python 

7
必须阅读哪些PEP?
我是一个相当强大的Python编码人员,但是我的风格太多了,有些杂乱无章,而且我敢肯定,针对许多问题,有比我想出的更多的Pythonic解决方案。对于任何精通Pythonista的人来说,哪些PEP是必不可少的?
70 python  pep 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.