Questions tagged «python»

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


3
* args和** kwargs的类型注释
我正在尝试使用具有抽象基类的Python类型注释来编写一些接口。有没有一种方法来注释可能的类型*args和**kwargs? 例如,如何表达一个函数的明智参数是一个int或两个int?type(args)给出,Tuple所以我的猜测是将类型注释为Union[Tuple[int, int], Tuple[int]],但这是行不通的。 from typing import Union, Tuple def foo(*args: Union[Tuple[int, int], Tuple[int]]): try: i, j = args return i + j except ValueError: assert len(args) == 1 i = args[0] return i # ok print(foo((1,))) print(foo((1, 2))) # mypy does not like this print(foo(1)) print(foo(1, 2)) 来自mypy的错误消息: t.py: …

6
为什么要使用Python的os模块方法而不是直接执行shell命令?
我试图了解使用Python的库函数执行特定于操作系统的任务(例如创建文件/目录,更改文件属性等)的动机是什么,而不是仅通过os.system()or 来执行这些命令subprocess.call()? 例如,为什么我要使用os.chmod而不是做os.system("chmod...")? 我知道,尽可能多地使用Python的可用库方法,而不是直接执行Shell命令,更像是“ Pythonic”。但是,从功能角度来看,这样做还有其他动机吗? 我只在这里谈论执行简单的单行shell命令。当我们需要对任务的执行进行更多控制时,我知道subprocess例如使用模块更有意义。

8
使用pip安装SciPy和NumPy
我正在尝试在要分发的程序包中创建所需的库。它需要SciPy和NumPy库。在开发过程中,我同时使用 apt-get install scipy 它安装了SciPy 0.9.0和NumPy 1.5.1,并且运行良好。 我想使用pip install- 做同样的事情,以便能够在我自己的包的setup.py中指定依赖项。 问题是,当我尝试: pip install 'numpy==1.5.1' 它工作正常。 但是之后 pip install 'scipy==0.9.0' 惨败 raise self.notfounderror(self.notfounderror.__doc__) numpy.distutils.system_info.BlasNotFoundError: Blas (http://www.netlib.org/blas/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [blas]) or by setting the BLAS environment variable. …
157 python  numpy  scipy  pip  apt 

5
如何在不使用CD-cd进入目录的情况下在命令行中使用Python脚本?是PYTHONPATH吗?
如何使用PYTHONPATH?当我尝试在路径中运行脚本时,找不到文件。当我进入包含该脚本的目录时,该脚本将运行。那么PYTHONPATH有什么用呢? $ echo $PYTHONPATH :/home/randy/lib/python $ tree -L 1 '/home/randy/lib/python' /home/randy/lib/python ├── gbmx_html.py ├── gbmx.py ├── __init__.py ├── __pycache__ ├── scripts └── yesno.py $ python gbmx.py -h python: can't open file 'gbmx.py': [Errno 2] No such file or directory $ cd '/home/randy/lib/python' cd到文件目录后,它运行.. $ python gbmx.py -h usage: gbmx.py [-h] …
157 python  unix 

14
返回清单的产品
有没有更简洁,有效或简单的pythonic方法来执行以下操作? def product(list): p = 1 for i in list: p *= i return p 编辑: 我实际上发现这比使用operator.mul快一点: from operator import mul # from functools import reduce # python3 compatibility def with_lambda(list): reduce(lambda x, y: x * y, list) def without_lambda(list): reduce(mul, list) def forloop(list): r = 1 for x in …
157 python 

4
Python strptime()和时区?
我有一个使用IPDDump创建的Blackberry IPD备份中的CSV转储文件。这里的日期/时间字符串看起来像这样(EST澳大利亚时区): Tue Jun 22 07:46:22 EST 2010 我需要能够在Python中解析此日期。首先,我尝试strptime()从datettime 开始使用该功能。 >>> datetime.datetime.strptime('Tue Jun 22 12:10:20 2010 EST', '%a %b %d %H:%M:%S %Y %Z') 但是,由于某种原因,返回的datetime对象似乎没有任何tzinfo关联。 我确实在该页面上阅读了显然是datetime.strptime默默丢弃的内容tzinfo,但是,我检查了文档,但找不到此处记录的任何相关信息。 我已经能够使用第三方Python库dateutil来解析日期,但是我仍对如何strptime()错误地使用内置函数感到好奇?有什么办法可以使strptime()时区与时俱进吗?



3
使用Python遍历目录
我需要遍历给定目录的子目录并搜索文件。如果我得到一个文件,则必须打开它并更改内容,然后用自己的行替换它。 我尝试了这个: import os rootdir ='C:/Users/sid/Desktop/test' for subdir, dirs, files in os.walk(rootdir): for file in files: f=open(file,'r') lines=f.readlines() f.close() f=open(file,'w') for line in lines: newline = "No you are not" f.write(newline) f.close() 但我遇到一个错误。我究竟做错了什么?
157 python  directory 


5
如何可靠地在与Python脚本相同的目录中打开文件
我曾经使用简单的命令打开与当前运行的Python脚本位于同一目录中的文件 open("Some file.txt", "r") 但是,我发现双击该脚本在Windows中运行时,它将尝试从错误的目录中打开文件。 从那时起,我一直使用以下形式的命令 open(os.path.join(sys.path[0], "Some file.txt"), "r") 每当我想打开文件时。这适用于我的特定用法,但是我不确定sys.path[0]在其他用例中是否会失败。 所以我的问题是:打开与当前运行的Python脚本位于同一目录中的文件的最佳和最可靠的方法是什么? 到目前为止,这是我能够弄清楚的: os.getcwd()并os.path.abspath('')返回“当前工作目录”,而不是脚本目录。 os.path.dirname(sys.argv[0])并os.path.dirname(__file__)返回用于调用脚本的路径,该路径可以是相对的,甚至可以是空白的(如果脚本在cwd中)。此外,__file__当脚本在IDLE或PythonWin中运行时不存在。 sys.path[0]并os.path.abspath(os.path.dirname(sys.argv[0]))似乎返回脚本目录。我不确定这两者之间是否有任何区别。 编辑: 我只是意识到,我想做的更好的描述是“在与包含模块相同的目录中打开文件”。换句话说,如果我导入的模块写在另一个目录中,并且该模块打开一个文件,我希望它在模块目录中查找该文件。我认为我所发现的任何东西都无法做到这一点...
157 python  directory 

6
pythonw.exe还是python.exe?
长话短说:pythonw.exe什么都不做,python.exe什么也不接受(我应该使用哪一个?) test.py: print "a" CMD窗口: C:\path>pythonw.exe test.py <BLANK LINE> C:\path> C:\path>python.exe test.py File "C:\path\test.py", line 7 print "a" ^ SyntaxError: invalid syntax C:\path> 请告诉我我在做错什么。
157 python  python-3.x 

9
如何检查对象是否是python中的生成器对象?
在python中,如何检查对象是否为生成器对象? 试试这个- >>> type(myobject, generator) 给出错误- Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'generator' is not defined (我知道我可以检查对象是否具有next将其用作生成器的方法,但我想使用某种方法可以确定任何对象的类型,而不仅仅是生成器。)
157 python  generator 


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.