小编boa*_*der的帖子

如何在python中创建文件而不覆盖现有文件

目前我有一个循环,试图通过向文件名字符串添加后缀来查找未使用的文件名.一旦找不到文件,它就会使用无法打开具有该名称的新文件的名称.问题是这个代码在网站中使用,并且可能有多次尝试同时执行相同的操作,因此存在竞争条件.

如果在检查时间和另一个线程中打开时间之间创建一个文件,我如何防止python覆盖现有文件.

我可以通过随机化后缀来最小化机会,但是已经根据路径名的部分最小化了机会.我想用一个可以告诉的函数来消除这个机会,只有在它不存在的情况下才创建这个文件.

我可以使用win32函数来执行此操作,但我希望这可以跨平台工作,因为它最终将托管在linux上.

python multithreading

20
推荐指数
2
解决办法
1万
查看次数

在Python 3中翻译功能

我正在使用Python 3,我想翻译我的文件名没有数字.翻译功能似乎在Python 3中不起作用.如何将文件名翻译为没有数字?

这是不起作用的代码块:

file_name = "123hello.jpg"
file_name.translate(None, "0123456789")
Run Code Online (Sandbox Code Playgroud)

谢谢

python function translate

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

为什么python实例没有__name__属性?

>>> class Foo:
...   'it is a example'
...   print 'i am here'
... 
i am here
>>> Foo.__name__
'Foo'
>>> Foo().__name__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: Foo instance has no attribute '__name__'
>>> Foo.__doc__
'it is a example'
>>> Foo().__doc__
'it is a example'
>>> Foo.__dict__
{'__module__': '__main__', '__doc__': 'it is a example'}
>>> Foo().__dict__
{}
>>> Foo.__module__
'__main__'
>>> Foo().__module__
'__main__'
>>> myname=Foo()
>>> myname.__name__
Traceback (most recent call last):
 File …
Run Code Online (Sandbox Code Playgroud)

python

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

如何在Jinja2的视图(或模板)中将字符串标记为"安全"?

通常,当您想在Jinja2中将字符串输出标记为安全时,您可以执行以下操作:

{{ output_string|safe() }}
Run Code Online (Sandbox Code Playgroud)

但是,如果output_string 总是安全的呢?我不想每次都使用安全过滤器重复自己.

我有一个名为"emailize"的自定义过滤器,它会在电子邮件中为输出添加网址.&符似乎总是逃脱.我的自定义过滤器中有一种方法可以将输出标记为安全吗?

django django-templates jinja2

16
推荐指数
2
解决办法
8503
查看次数

为什么python在Windows上这么慢?

我今天学到了关于pystones的知识,所以我决定看看我的各种环境是什么样的.我在我的笔记本电脑上运行了pystones,它在裸机上运行窗口并得到了这些结果

Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from test import pystone
>>> for i in range(0,10):
...   pystone.pystones()
...
(1.636334799754252, 30556.094026423627)
(2.1157907919853756, 23631.82607155689)
(2.5324817108003685, 19743.479207278437)
(2.541626695533182, 19672.4405231788)
(2.536022267835051, 19715.915208695682)
(2.540327088340973, 19682.50475676099)
(2.544761766911506, 19648.20465716261)
(2.540296805235016, 19682.739393664764)
(2.533851636391205, 19732.804905346253)
(2.536483186973612, 19712.3325148696)
Run Code Online (Sandbox Code Playgroud)

然后我在我们的一些Linux VM上运行它,性能提高了2.7-3.4倍.所以我在我的笔记本电脑上启动了我的vmware Linux VM并重新进行了相同的测试并获得了以下结果:

Python 2.7.2+ (default, Oct  4 2011, 20:03:08) 
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more …
Run Code Online (Sandbox Code Playgroud)

python benchmarking

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

如何在grunt-usemin编译期间删除一些javascript

我有代码,可以轻松快速地编写/测试代码,代码不属于我的生产代码(大多数情况下它会模拟服务器,所以我只需要grunt服务器).

这两部分,一部分是如何删除部分脚本

angular.module('nglaborcallApp', [
'ngCookies',
'ngResource',
'ngSanitize',
'ngRoute',
'server_mocks',  // Don't want this line in the production build
'dialogs'
Run Code Online (Sandbox Code Playgroud)

]

然后是一段需要消失的index.html

<!-- build:js({.tmp,app}) scripts/mocks/mocks.js -->
<script type='text/javascript'>var Mocks = {};</script>
<script src='scripts/mocks/jobs.js'></script>
<script src='scripts/mock.js'></script>
<!-- endbuild -->
Run Code Online (Sandbox Code Playgroud)

所以这可能是2个问题.我在usemin文档中没有看到任何关于此的内容,所以我猜测还有其他工具,但我不知道该工具的名称是什么.

另一种可能性是我做错了而不是注入这个模拟对象,我应该用grunt服务器来做.其他人在做什么?

javascript gruntjs grunt-usemin

13
推荐指数
1
解决办法
7534
查看次数

为什么Opencv GPU代码比CPU慢?

我正在使用笔记本电脑的opencv242 + VS2010.
我试图对OpenCV中的GPU块进行一些简单测试,但它表明GPU比CPU代码慢100倍.在这段代码中,我只是将彩色图像转换为灰度图像,使用cvtColor的功能

这是我的代码,PART1是CPU代码(测试cpu RGB2GRAY),PART2是GPU上传图像,PART3是GPU RGB2GRAY,PART4是CPU RGB2GRAY.有三件事让我如此疑惑:

1在我的代码中,part1是0.3ms,而part4(与part1完全相同)是40ms!
2将图像上传到GPU的part2是6000ms !!!
3 Part3(GPU代码)是11ms,对于这个简单的图像来说速度太慢了!

    #include "StdAfx.h"
    #include <iostream>
    #include "opencv2/opencv.hpp"
    #include "opencv2/gpu/gpu.hpp"
    #include "opencv2/gpu/gpumat.hpp"
    #include "opencv2/core/core.hpp"
    #include "opencv2/highgui/highgui.hpp"
    #include <cuda.h>
    #include <cuda_runtime_api.h>
    #include <ctime>
    #include <windows.h>

    using namespace std;
    using namespace cv;
    using namespace cv::gpu;

    int main()
    {
        LARGE_INTEGER freq;
        LONGLONG QPart1,QPart6;
        double dfMinus, dfFreq, dfTim;
        QueryPerformanceFrequency(&freq);
        dfFreq = (double)freq.QuadPart;

        cout<<getCudaEnabledDeviceCount()<<endl;
        Mat img_src = imread("d:\\CUDA\\train.png", 1);

        // PART1 CPU code~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        // From color image to grayscale image.
        QueryPerformanceCounter(&freq);
        QPart1 …
Run Code Online (Sandbox Code Playgroud)

c++ opencv gpu

12
推荐指数
3
解决办法
2万
查看次数

11
推荐指数
3
解决办法
6542
查看次数

当范围被销毁时,我是否需要"监视"范围变量?

以下是角度的文档.我正在观察几个变量,这些变量是构建过滤字符串的范围的一部分ng-grid.当这个范围被销毁时,我是否需要通过调用返回值来取消监视它们$scope.$watch,或者是否足以破坏范围?如果被监视的变量不属于此范围,该怎么办?

如果我没有"监视"与范围一起被销毁的变量,我是否会泄漏内存/导致性能问题.


$destroy()

从父作用域中删除当前作用域(及其所有子作用域).删除意味着调用$digest()将不再传播到当前范围及其子项.删除还意味着当前范围符合垃圾收集的条件.

$destroy()通常使用的指令,如ngRepeat用于管理环的展开.

在销毁范围之前,$destroy会在此范围内广播一个事件.应用程序代码可以注册一个$destroy事件处理程序,使其有机会执行任何必要的清理.

请注意,在AngularJS中,还有一个$destroyjQuery事件,可以在从DOM中删除元素之前清除DOM绑定.

angularjs angularjs-watch

11
推荐指数
1
解决办法
4274
查看次数

什么清除Django中select_for_update创建的锁?

如果我执行select_for_update,该锁何时/如何释放?一些示例代码:

for rec_id in list(1,2,3):
    record = MyModel.objects.select_for_update().get(pk=rec_id)
    # Do several things to this record
    record.save()
Run Code Online (Sandbox Code Playgroud)

save()在视图返回并且整个事务完成后,是否释放了锁,或者它是否被释放?如何控制锁的粒度?

文档似乎没有说:https: //docs.djangoproject.com/en/1.6/ref/models/querysets/#select-for-update

django

11
推荐指数
1
解决办法
3484
查看次数