小编Par*_*and的帖子

如何在Python中安全地创建嵌套目录?

检查文件目录是否存在的最优雅方法是什么,如果不存在,使用Python创建目录?这是我尝试过的:

import os

file_path = "/my/directory/filename.txt"
directory = os.path.dirname(file_path)

try:
    os.stat(directory)
except:
    os.mkdir(directory)       

f = file(filename)
Run Code Online (Sandbox Code Playgroud)

不知何故,我错过了os.path.exists(感谢kanja,Blair和Douglas).这就是我现在拥有的:

def ensure_dir(file_path):
    directory = os.path.dirname(file_path)
    if not os.path.exists(directory):
        os.makedirs(directory)
Run Code Online (Sandbox Code Playgroud)

是否有"开放"的标志,这会自动发生?

python directory operating-system exception path

3909
推荐指数
28
解决办法
245万
查看次数

将HTML Canvas捕获为gif/jpg/png/pdf?

是否可以捕获或打印html画布中显示的图像或pdf?

我想通过画布生成一个图像,并能够从该图像生成一个png.

javascript html5 png export canvas

684
推荐指数
8
解决办法
55万
查看次数

用于搜索的RESTful URL设计

我正在寻找一种合理的方式将搜索表示为RESTful URL.

设置:我有两个模型,汽车和车库,汽车可以在车库.所以我的网址看起来像:

/car/xxxx
  xxx == car id
  returns car with given id

/garage/yyy
  yyy = garage id
  returns garage with given id
Run Code Online (Sandbox Code Playgroud)

汽车可以独立存在(因此/汽车),也可以存在于车库中.例如,在给定车库中代表所有车辆的正确方法是什么?就像是:

/garage/yyy/cars     ?
Run Code Online (Sandbox Code Playgroud)

车库yyy和zzz中的汽车联盟怎么样?

什么是代表搜索具有某些属性的汽车的正确方法?说:给我看看所有带4扇门的蓝色轿车:

/car/search?color=blue&type=sedan&doors=4
Run Code Online (Sandbox Code Playgroud)

或者它应该是/汽车而不是?

使用"搜索"似乎不合适 - 什么是更好的方式/术语?应该只是:

/cars/?color=blue&type=sedan&doors=4
Run Code Online (Sandbox Code Playgroud)

搜索参数应该是PATHINFO还是QUERYSTRING的一部分?

简而言之,我正在寻找跨模型REST网址设计和搜索的指导.

[更新]我喜欢贾斯汀的答案,但他没有涉及多字段搜索案例:

/cars/color:blue/type:sedan/doors:4
Run Code Online (Sandbox Code Playgroud)

或类似的东西.我们怎么样

/cars/color/blue
Run Code Online (Sandbox Code Playgroud)

到多场案件?

rest

413
推荐指数
7
解决办法
18万
查看次数

Python:根据条件拆分列表?

从美学角度和绩效角度来看,根据条件将项目列表拆分为多个列表的最佳方法是什么?相当于:

good = [x for x in mylist if x in goodvals]
bad  = [x for x in mylist if x not in goodvals]
Run Code Online (Sandbox Code Playgroud)

有没有更优雅的方式来做到这一点?

更新:这是实际的用例,以便更好地解释我正在尝试做的事情:

# files looks like: [ ('file1.jpg', 33L, '.jpg'), ('file2.avi', 999L, '.avi'), ... ]
IMAGE_TYPES = ('.jpg','.jpeg','.gif','.bmp','.png')
images = [f for f in files if f[2].lower() in IMAGE_TYPES]
anims  = [f for f in files if f[2].lower() not in IMAGE_TYPES]
Run Code Online (Sandbox Code Playgroud)

python

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

多处理:在进程之间共享一个大的只读对象?

是否通过程序中先前创建的多处理共享对象生成子进程?

我有以下设置:

do_some_processing(filename):
    for line in file(filename):
        if line.split(',')[0] in big_lookup_object:
            # something here

if __name__ == '__main__':
    big_lookup_object = marshal.load('file.bin')
    pool = Pool(processes=4)
    print pool.map(do_some_processing, glob.glob('*.data'))
Run Code Online (Sandbox Code Playgroud)

我正在将一些大对象加载到内存中,然后创建一个需要使用该大对象的工作池.大对象以只读方式访问,我不需要在进程之间传递它的修改.

我的问题是:加载到共享内存中的大对象,如果我在unix/c中生成进程,或者每个进程是否加载了自己的大对象副本?

更新:进一步澄清 - big_lookup_object是一个共享查找对象.我不需要拆分它并单独处理它.我需要保留一份副本.我需要分割它的工作是读取许多其他大文件,并在查找对象中查找这些大文件中的项目.

进一步更新:数据库是一个很好的解决方案,memcached可能是一个更好的解决方案,磁盘上的文件(shelve或dbm)可能更好.在这个问题中,我对内存解决方案特别感兴趣.对于最终的解决方案,我将使用hadoop,但我想看看我是否也可以拥有本地内存版本.

python multiprocessing

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

Django中Python登录的优雅设置

我还没有找到一种用Django设置Python日志的方法,我很满意.我的要求很简单:

  • 针对不同事件的不同日志处理程序 - 也就是说,我希望能够记录到不同的文件
  • 轻松访问模块中的记录器.该模块应该能够轻松找到它的记录器.
  • 应该很容易适用于命令行模块.系统的某些部分是独立的命令行或守护程序进程.使用这些模块可以轻松使用日志记录.

我目前的设置是logging.conf在我登录的每个模块中使用文件和设置日志记录.感觉不对劲.

你有自己喜欢的日志设置吗?请详细说明:如何设置配置(logging.conf在代码中使用或设置),何时/何时启动记录器,以及如何在模块中访问它们等.

python django logging

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

将错误注入已经过验证的表单中?

form.Form验证用户输入值后,我将它们传递给单独的(外部)进程以进行进一步处理.此外部进程可能会在值中发现更多错误.

有没有办法将这些错误注入已经验证的表单中,以便通过常用的表单错误显示方法显示它们(或者有更好的替代方法)?

一个建议是在表单验证中包含外部处理,这不是理想的,因为外部流程不仅仅需要验证.

django django-forms

93
推荐指数
4
解决办法
3万
查看次数

Thrift,Protocol Buffers,JSON,EJB等的性能比较?

我们正在研究传输/协议解决方案,并且即将进行各种性能测试,所以我想如果他们已经这样做了,我会向社区查询:

有没有人为简单的echo服务进行服务器性能测试,以及比较Linux上的EJB3,Thrift和Protocol Buffers的各种消息大小的序列化/反序列化?

主要语言是Java,C/C++,Python和PHP.

更新:我对此仍然很感兴趣,如果有人做了进一步的基准测试,请告诉我.此外,非常有趣的基准测试显示压缩JSON执行与Thrift/Protocol Buffers相似/更好,因此我也将JSON抛入此问题.

python java performance thrift protocol-buffers

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

Python:为给定的用户名/组名查找uid/gid(对于os.chown)

使用Python查找给定用户名或组名的uid/gid有什么好方法?我需要使用os.chown设置文件所有权,并且需要整数id而不是字母.

[快速说明]:getpwnam工作得很好,但在Windows上不可用,所以这里有一些代码可以创建存根,允许你在windows和unix上运行相同的代码.

try:
    from pwd import getpwnam
except:
    getpwnam = lambda x: (0,0,0)
    os.chown = lambda x, y, z: True
    os.chmod = lambda x, y: True
    os.fchown = os.chown
    os.fchmod = os.chmod
Run Code Online (Sandbox Code Playgroud)

python

66
推荐指数
1
解决办法
4万
查看次数

Django:显示/记录来自python shell的ORM sql调用

使用优秀的Django-Devserver我在我的代码中找到各种有趣和意外的SQL调用.我想找到调用的来源,所以我正在寻找一种方法来获取日志或打印出在Python shell中由Django ORM生成的所有SQL调用.也就是说,当我通过Python shell进行Django ORM调用时,我希望看到打印出来或记录的结果SQL.

我注意到几个解决方案将日志信息添加到html页面.是否有一种简单的方法转储到命令行?

django orm

53
推荐指数
7
解决办法
3万
查看次数