Questions tagged «python»

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

6
使用Python在Linux中检查文件权限
我正在编写一个脚本来检查用户目录中文件的权限,如果它们不可接受,我会警告他们,但是我不仅要检查登录用户的权限,还要检查组和其他用户的权限。我怎样才能做到这一点?在我看来,os.access()在Python中只能检查运行脚本的用户的权限。
69 python 

5
计算大于一个值的矩阵中的所有值
我必须计算矩阵(二维数组)中大于200的所有值。 我为此写下的代码是: za=0 p31 = numpy.asarray(o31) for i in range(o31.size[0]): for j in range(o32.size[1]): if p31[i,j]<200: za=za+1 print za o31 是一幅图像,我将其转换为矩阵,然后查找值。 我的问题是,有没有更简单的方法可以做到这一点?

3
如何在当前时间后10分钟找到日期时间?
我想找出当前时间之后10分钟的日期时间。假设我们有 from datetime import datetime now = datetime.now() new_now = datetime.strptime(now, '%a, %d %b %Y %H:%M:%S %Z') 我想找到这个now,new_now十分钟后。我怎样才能做到这一点?
69 python  datetime 

9
我如何打印被调用的函数
在调试Python脚本时,我真的很想知道整个程序的整个调用堆栈。理想的情况是,如果有一个用于python的命令行标志,它将导致Python在调用它们时打印所有函数名(我检查了man Python2.7,但是没有找到这种类型的东西)。 由于此脚本中函数的数量众多,因此,我尽量不要在每个函数和/或类的开头添加打印语句。 一个中间的解决方案是使用PyDev的调试器,放置几个断点并检查程序中给定点的调用堆栈,因此我暂时将使用这种方法。 如果存在这样的方法,我仍然希望查看程序整个生命周期内调用的所有函数的完整列表。
69 python  callstack 

2
如何判断NumPy是创建视图还是副本?
作为一个最小的工作示例,让我们数字化2D数组。numpy.digitize需要一维数组: import numpy as np N = 200 A = np.random.random((N, N)) X = np.linspace(0, 1, 20) print np.digitize(A.ravel(), X).reshape((N, N)) 现在文档说: ...仅在需要时制作副本。 ravel在这种情况下,我如何知道是否需要复制?总的来说,有什么方法可以确定某个特定操作是创建副本还是创建视图?
69 python  numpy  copy 

7
凝聚距离矩阵如何工作?(pdist)
scipy.spatial.distance.pdist返回一个压缩距离矩阵。从文档中: 返回一个简化的距离矩阵Y。对于每个和(其中),度量dist(u = X [i],v = X [j])并存储在条目ij中。 我以为ij是故意的i*j。但是我认为我可能是错的。考虑 X = array([[1,2], [1,2], [3,4]]) dist_matrix = pdist(X) 然后文档说dist(X[0], X[2])应该是dist_matrix[0*2]。但是,dist_matrix[0*2]是0 -而不是2.8。 我应该使用什么公式访问给定i和的两个向量的相似性j?
69 python  numpy  scipy 

7
Jinja模板是否有惯用的文件扩展名?
我需要以编程方式区分Jinja模板文件,其他模板文件(例如ERB)和无模板纯文本文件。 根据Jinja文档: Jinja模板不需要特定的扩展名:.html,.xml或任何其他扩展名都可以。 但是当需要显式扩展时我应该使用什么?.py会引起误解,围绕Jinja Extensions的讨论会严重搜索搜索包括“ jinja”和“ extension”一词的所有内容。 我可以很容易地规定一个项目范围内的约定(.jnj或者.ja想到),但这是针对开放源代码的,因此,如果某个地方已经建立了惯例,那么我不想逆潮流。 编辑1:同样,我了解Jinja项目(故意)没有定义默认文件扩展名。我要问的是,出于某些项目特定的原因,在某些情况下需要使用非官方的约定。 编辑2:说明:这不适用于HTML内容。

6
检查对象是否存在
我需要检查是否Model.objects.filter(...)打开了任何东西,但不需要插入任何东西。到目前为止,我的代码是: user_pass = log_in(request.POST) # form class if user_pass.is_valid(): cleaned_info = user_pass.cleaned_data user_object = User.objects.filter(email = cleaned_info['username'])


3
如何写入Python子进程的stdin?
我正在尝试编写一个Python脚本来启动一个子进程,并将其写入子进程stdin。我还希望能够确定子进程崩溃时要采取的措施。 我试图启动的过程是一个名为的程序nuke,它具有自己的Python内置版本,我希望能够向其提交命令,然后告诉其在命令执行后退出。到目前为止,我已经得出结论,如果我在类似这样的命令提示符下启动Python,然后nuke作为子进程启动,那么我可以在中键入命令nuke,但是我希望能够将其全部放入脚本中,以便Python程序可以启动nuke,然后写入其标准输入(并因此写入其内置的Python版本),并使其执行令人眼花things乱的事情,因此,我编写了一个如下所示的脚本nuke: subprocess.call(["C:/Program Files/Nuke6.3v5/Nuke6.3", "-t", "E:/NukeTest/test.nk"]) 然后什么也没有发生,因为nuke正在等待用户输入。我现在将如何写入标准输入? 我这样做是因为我正在运行一个带有nuke该插件的插件,导致它在渲染多个帧时间歇性崩溃。因此,我希望该脚本能够启动nuke,告诉它执行某些操作,然后如果崩溃,请重试。因此,如果有一种方法可以捕捉到崩溃并仍然可以正常运行,那就太好了。

7
检查字符串是否在熊猫数据框中
我想看看数据框内的特定列中是否存在特定的字符串。 我遇到了错误 ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。 import pandas as pd BabyDataSet = [('Bob', 968), ('Jessica', 155), ('Mary', 77), ('John', 578), ('Mel', 973)] a = pd.DataFrame(data=BabyDataSet, columns=['Names', 'Births']) if a['Names'].str.contains('Mel'): print "Mel is there"

11
Python导入编码样式
我发现了一种新模式。这种模式众所周知吗?对此有何看法? 基本上,我很难遍历源文件来确定可用的模块导入等等,所以现在,而不是 import foo from bar.baz import quux def myFunction(): foo.this.that(quux) 我将所有导入移动到实际使用它们的函数中,如下所示: def myFunction(): import foo from bar.baz import quux foo.this.that(quux) 这做了一些事情。首先,我很少偶然用其他模块的内容污染我的模块。我可以设置__all__为模块变量,但是随后我必须在模块发展时对其进行更新,这对实际存在于模块中的代码的命名空间污染没有帮助。 其次,我很少在模块顶部添加大量的导入,因为重构后,不再需要一半或更多的导入。最后,我发现此模式更容易阅读,因为每个引用的名称都在函数体内。

4
在远程Shell中使用Fabric进行run()调用时,能否捕获错误代码?
通常,只要run()调用返回非零退出代码,Fabric就会退出。但是,对于某些电话,这是预期的。例如,当PNGOut无法压缩文件时,它将返回错误代码2。 目前,我只能通过使用shell逻辑(do_something_that_fails || true或do_something_that_fails || do_something_else)来规避此限制,但我希望能够将逻辑保留在纯Python中(Fabric承诺)。 有没有一种方法可以检查错误代码并对错误代码做出反应,而不是让Fabric死机而死?我仍然希望其他呼叫具有默认行为,因此通过修改环境来更改其行为似乎不是一个好选择(据我所知,您只能使用它来警告它而不是死亡)。


5
与多处理错误的另一个混淆是,“模块”对象没有属性“ f”
我知道这已经得到了回答,但是直接执行脚本“ python filename.py”似乎不起作用。我在SuSE Linux上有Python 2.6.2。 码: #!/usr/bin/python # -*- coding: utf-8 -*- from multiprocessing import Pool p = Pool(1) def f(x): return x*x p.map(f, [1, 2, 3]) 命令行: > python example.py Process PoolWorker-1: Traceback (most recent call last): File "/usr/lib/python2.6/multiprocessing/process.py", line 231, in _bootstrap self.run() File "/usr/lib/python2.6/multiprocessing/process.py", line 88, in …

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.