小编Jon*_*han的帖子

如何使用Python查找脚本的目录?

请考虑以下Python代码:

import os
print os.getcwd()
Run Code Online (Sandbox Code Playgroud)

os.getcwd()用来获取脚本文件的目录位置.当我从命令行运行脚本时它给了我正确的路径,而当我从Django视图中的代码运行的脚本运行它时,它会打印出来/.

如何从Django视图运行的脚本中获取脚本的路径?

更新:
总结到目前为止的答案 - os.getcwd()并且os.path.abspath()都给出当前工作目录,该目录可能是也可能不是脚本所在的目录.在我的网站主机设置中__file__只提供没有路径的文件名.

在Python中没有任何方法(总是)能够接收脚本所在的路径吗?

python directory django-views getcwd

451
推荐指数
8
解决办法
40万
查看次数

Python退出命令 - 为什么这么多,何时应该使用?

似乎python支持许多不同的命令来停止脚本执行.
我发现的选择是: quit(),exit(),sys.exit(),os._exit()

我错过了吗?他们之间有什么区别?你什么时候用?

python

435
推荐指数
4
解决办法
58万
查看次数

Python:defaultdict的defaultdict?

有没有办法defaultdict(defaultdict(int))让以下代码工作?

for x in stuff:
    d[x.a][x.b] += x.c_int
Run Code Online (Sandbox Code Playgroud)

d需要根据x.ax.b元素进行临时构建.

我可以用:

for x in stuff:
    d[x.a,x.b] += x.c_int
Run Code Online (Sandbox Code Playgroud)

但后来我无法使用:

d.keys()
d[x.a].keys()
Run Code Online (Sandbox Code Playgroud)

python collections

287
推荐指数
6
解决办法
7万
查看次数

找到与标准匹配的第一个序列项

找到/返回符合特定标准的第一个列表项的最优雅和有效的方法是什么?

例如,如果我有一个对象列表,我想得到属性的第一个对象obj.val==5.我当然可以使用列表理解,但这会产生O(n),如果n很大,那就太浪费了.break一旦达到标准,我也可以使用循环,但我认为可能有更多的pythonic /优雅解决方案.

python list

280
推荐指数
1
解决办法
18万
查看次数

Django - 如何使用South重命名模型字段?

我想更改模型中特定字段的名称:

class Foo(models.Model):
    name = models.CharField()
    rel  = models.ForeignKey(Bar)
Run Code Online (Sandbox Code Playgroud)

应改为:

class Foo(models.Model):
    full_name     = models.CharField()
    odd_relation  = models.ForeignKey(Bar)
Run Code Online (Sandbox Code Playgroud)

使用南方最简单的方法是什么?

python django django-models django-south

208
推荐指数
5
解决办法
4万
查看次数

在没有运行X服务器的情况下生成matplotlib图

Matplotlib似乎需要$ DISPLAY环境变量,这意味着正在运行的X服务器.
某些Web托管服务不允许运行X服务器会话.
有没有办法在没有正在运行的X服务器的情况下使用matplotlib生成图形?

[username@hostname ~]$ python2.6
Python 2.6.5 (r265:79063, Nov 23 2010, 02:02:03)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib.pyplot as plt
>>> fig = plt.figure()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/username/lib/python2.6/matplotlib-1.0.1-py2.6-linux-i686.egg/matplotlib/pyplot.py", line 270, in figure
    **kwargs)
  File "/home/username/lib/python2.6/matplotlib-1.0.1-py2.6-linux-i686.egg/matplotlib/backends/backend_tkagg.py", line 80, in new_figure_manager
    window = Tk.Tk()
  File "/usr/local/lib/python2.6/lib-tk/Tkinter.py", line 1643, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

172
推荐指数
2
解决办法
11万
查看次数

Eclipse java调试:找不到源代码

在eclipse中调试java应用程序时,我在两种情况下收到" Source not found "错误:

  • 单步执行已导入的其他项目中的文件
  • 单步进入已安装的maven存储库中的文件

文件在那里,但是eclipse不会进入它们,而是显示一个" 附加源 " 按钮

我尝试附加(打开一个对话框来定义变量?!),eclipse确实跳转到文件,但调试器无法检查那里的任何变量.另外,为每个依赖项手动附加源代码也不实用,因为在我的情况下有数千个依赖项文件.

我是eclipse\java的新手,所以解释为什么会发生这种情况+如何解决这个问题会有很大帮助!

java eclipse debugging

172
推荐指数
10
解决办法
38万
查看次数

应该将哪些Visual C++文件类型提交给版本控制?

哪个Visual Studio\Visual C++文件类型应该提交到版本控制?
在我的项目中,我有以下文件类型:

aps
cpp
exe
filters
h
ico
idb
ipch
lastbuildstate
lib
log
manifest
obj
pch
pdb
rc
rc2
res
sdf
sln
suo
tlog
txt
user
vcxproj
Run Code Online (Sandbox Code Playgroud)

我非常感谢每个人的简短推理.如果其中任何一个存在争议,请注意.为了完整性,我故意包括甚至是琐碎的文件类型.

编辑

一方面,我希望将来能够独立于平台.另一方面,在不久的将来,我想与具有类似设置的团队成员合作.设置之间的文件夹兼容性当然是一种选择,因此如果简化工作流程,则可以包含保存路径的配置文件.
再一次,我肯定会感谢解释什么是什么.

version-control file-type visual-studio visual-c++

170
推荐指数
5
解决办法
5万
查看次数

Python日志记录:以时间格式使用毫秒

默认情况下logging.Formatter('%(asctime)s'),使用以下格式打印:

2011-06-09 10:54:40,638
Run Code Online (Sandbox Code Playgroud)

其中638是毫秒.我需要将逗号更改为点:

2011-06-09 10:54:40.638
Run Code Online (Sandbox Code Playgroud)

格式化我可以使用的时间:

logging.Formatter(fmt='%(asctime)s',datestr=date_format_str)
Run Code Online (Sandbox Code Playgroud)

但是文档没有指定如何格式化毫秒.我发现这个SO问题谈论微秒,但是a)我更喜欢毫秒和b)以下不适用于Python 2.6(我正在研究),因为%f:

logging.Formatter(fmt='%(asctime)s',datefmt='%Y-%m-%d,%H:%M:%S.%f')
Run Code Online (Sandbox Code Playgroud)

python time logging

141
推荐指数
7
解决办法
8万
查看次数

断言对mock方法的连续调用

模拟有一个有用的assert_called_with()方法.但是,据我所知,这只检查最后一次调用方法.
如果我有连续3次调用模拟方法的代码,每次使用不同的参数,我如何用它们的特定参数断言这3个调用?

python mocking

141
推荐指数
4
解决办法
8万
查看次数