标签: python

如何在Python中获取绝对文件路径

给定一个路径"mydir/myfile.txt",如何在Python中找到相对于当前工作目录的文件的绝对路径?例如在Windows上,我最终可能会:

"C:/example/cwd/mydir/myfile.txt"
Run Code Online (Sandbox Code Playgroud)

python path relative-path absolute-path

653
推荐指数
9
解决办法
77万
查看次数

整数的最大值和最小值

我在python中寻找整数的最小值和最大值.例如,在Java中,我们有Integer.MIN_VALUEInteger.MAX_VALUE.在python中有这样的东西吗?

python integer

648
推荐指数
9
解决办法
86万
查看次数

找不到pg_config可执行文件

我在安装psycopg2时遇到问题.我尝试以下时出现以下错误pip install psycopg2:

Error: pg_config executable not found.

Please add the directory containing pg_config to the PATH

or specify the full executable path with the option:



    python setup.py build_ext --pg-config /path/to/pg_config build ...



or with the pg_config option in 'setup.cfg'.

----------------------------------------
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build/psycopg2
Run Code Online (Sandbox Code Playgroud)

但问题pg_config实际上是在我的PATH; 它运行没有任何问题:

$ which pg_config
/usr/pgsql-9.1/bin/pg_config
Run Code Online (Sandbox Code Playgroud)

我尝试将pg_config路径添加到该setup.cfg文件并使用我从其网站(http://initd.org/psycopg/)下载的源文件构建它,我收到以下错误消息!

Error: Unable to find 'pg_config' file in '/usr/pgsql-9.1/bin/'
Run Code Online (Sandbox Code Playgroud)

但实际上它就是!!!

我对这些错误感到困惑.有人可以帮忙吗?

顺便说一句,我 …

python pip psycopg2

646
推荐指数
38
解决办法
43万
查看次数

与Project Euler的速度比较:C vs Python vs Erlang vs Haskell

我已经采取了问题#12项目欧拉作为编程练习和我的(肯定不是最优的)实现在C,Python和Erlang和Haskell的比较.为了获得更高的执行时间,我搜索第一个三角形数字,其中有超过1000个除数而不是原始问题中所述的500.

结果如下:

C:

lorenzo@enzo:~/erlang$ gcc -lm -o euler12.bin euler12.c
lorenzo@enzo:~/erlang$ time ./euler12.bin
842161320

real    0m11.074s
user    0m11.070s
sys 0m0.000s
Run Code Online (Sandbox Code Playgroud)

蟒蛇:

lorenzo@enzo:~/erlang$ time ./euler12.py 
842161320

real    1m16.632s
user    1m16.370s
sys 0m0.250s
Run Code Online (Sandbox Code Playgroud)

Python与PyPy:

lorenzo@enzo:~/Downloads/pypy-c-jit-43780-b590cf6de419-linux64/bin$ time ./pypy /home/lorenzo/erlang/euler12.py 
842161320

real    0m13.082s
user    0m13.050s
sys 0m0.020s
Run Code Online (Sandbox Code Playgroud)

二郎:

lorenzo@enzo:~/erlang$ erlc euler12.erl 
lorenzo@enzo:~/erlang$ time erl -s euler12 solve
Erlang R13B03 (erts-5.7.4) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.7.4  (abort with ^G)
1> 842161320

real    0m48.259s
user    0m48.070s
sys 0m0.020s
Run Code Online (Sandbox Code Playgroud)

哈斯克尔: …

c python erlang performance haskell

645
推荐指数
14
解决办法
13万
查看次数

在Python中以相反的顺序遍历列表

所以我可以从头开始len(collection)并结束collection[0].

编辑:对不起,我忘了提到我也希望能够访问循环索引.

python reverse loops

644
推荐指数
16
解决办法
62万
查看次数

pip和conda有什么区别?

我知道pip是python包的包管理器.但是,我看到IPython网站conda上的安装用于安装IPython.

我可以pip用来安装IPython吗?conda我已经拥有了为什么要用作另一个python包管理器pip

pip和之间有什么区别conda

python pip package-managers ipython conda

644
推荐指数
10
解决办法
26万
查看次数

如何在Python中更改目录(cd)?

cd 如在shell命令中更改工作目录.

如何在Python中更改当前的工作目录?

python

641
推荐指数
10
解决办法
100万
查看次数

运行具有典型测试目录结构的unittest

即使是简单的Python模块,非常常见的目录结构似乎是将单元测试分成它们自己的test目录:

new_project/
    antigravity/
        antigravity.py
    test/
        test_antigravity.py
    setup.py
    etc.
Run Code Online (Sandbox Code Playgroud)

例如,看看这个Python项目如何.

我的问题是,实际运行测试的常用方法什么?我怀疑这对除了我以外的所有人都是显而易见的,但你不能只是python test_antigravity.py从测试目录运行,因为import antigravity它将失败,因为模块不在路径上.

我知道我可以修改PYTHONPATH和其他搜索路径相关的技巧,但我不能相信这是最简单的方法 - 如果你是开发人员,那就没关系,但是如果他们只是想检查测试,那么期望用户使用是不现实的通过.

另一种选择只是将测试文件复制到另一个目录中,但它看起来有点愚蠢,并且忽略了将它们放在一个单独的目录中的重点.

那么,如果您刚刚将源代码下载到我的新项目中,您将如何运行单元测试?我更喜欢一个能让我对用户说的答案:"运行单元测试做X."

python unit-testing

641
推荐指数
13
解决办法
18万
查看次数

如何以常规格式打印日期?

这是我的代码:

import datetime
today = datetime.date.today()
print today
Run Code Online (Sandbox Code Playgroud)

这打印:2008-11-22这正是我想要的但是......我有一个列表我正在追加这个然后突然一切都变得"不稳定".这是代码:

import datetime
mylist = []
today = datetime.date.today()
mylist.append(today)
print mylist
Run Code Online (Sandbox Code Playgroud)

这打印出以下内容:

[datetime.date(2008, 11, 22)]
Run Code Online (Sandbox Code Playgroud)

我怎么能得到像"2008-11-22"这样的简单日期呢?

python datetime date

637
推荐指数
13
解决办法
127万
查看次数

如何在不修改任何一个列表的情况下获取Python中两个列表的串联?

在Python中,我可以找到连接两个列表的唯一方法是list.extend修改第一个列表.是否有任何串联函数返回其结果而不修改其参数?

python concatenation sequence list-manipulation

636
推荐指数
7
解决办法
85万
查看次数