目前我有一个循环,试图通过向文件名字符串添加后缀来查找未使用的文件名.一旦找不到文件,它就会使用无法打开具有该名称的新文件的名称.问题是这个代码在网站中使用,并且可能有多次尝试同时执行相同的操作,因此存在竞争条件.
如果在检查时间和另一个线程中打开时间之间创建一个文件,我如何防止python覆盖现有文件.
我可以通过随机化后缀来最小化机会,但是已经根据路径名的部分最小化了机会.我想用一个可以告诉的函数来消除这个机会,只有在它不存在的情况下才创建这个文件.
我可以使用win32函数来执行此操作,但我希望这可以跨平台工作,因为它最终将托管在linux上.
我正在使用Python 3,我想翻译我的文件名没有数字.翻译功能似乎在Python 3中不起作用.如何将文件名翻译为没有数字?
这是不起作用的代码块:
file_name = "123hello.jpg"
file_name.translate(None, "0123456789")
Run Code Online (Sandbox Code Playgroud)
谢谢
>>> 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) 通常,当您想在Jinja2中将字符串输出标记为安全时,您可以执行以下操作:
{{ output_string|safe() }}
Run Code Online (Sandbox Code Playgroud)
但是,如果output_string 总是安全的呢?我不想每次都使用安全过滤器重复自己.
我有一个名为"emailize"的自定义过滤器,它会在电子邮件中为输出添加网址.&符似乎总是逃脱.我的自定义过滤器中有一种方法可以将输出标记为安全吗?
我今天学到了关于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) 我有代码,可以轻松快速地编写/测试代码,代码不属于我的生产代码(大多数情况下它会模拟服务器,所以我只需要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服务器来做.其他人在做什么?
我正在使用笔记本电脑的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) 以下是角度的文档.我正在观察几个变量,这些变量是构建过滤字符串的范围的一部分ng-grid.当这个范围被销毁时,我是否需要通过调用返回值来取消监视它们$scope.$watch,或者是否足以破坏范围?如果被监视的变量不属于此范围,该怎么办?
如果我没有"监视"与范围一起被销毁的变量,我是否会泄漏内存/导致性能问题.
$destroy()从父作用域中删除当前作用域(及其所有子作用域).删除意味着调用$digest()将不再传播到当前范围及其子项.删除还意味着当前范围符合垃圾收集的条件.
在$destroy()通常使用的指令,如ngRepeat用于管理环的展开.
在销毁范围之前,$destroy会在此范围内广播一个事件.应用程序代码可以注册一个$destroy事件处理程序,使其有机会执行任何必要的清理.
请注意,在AngularJS中,还有一个$destroyjQuery事件,可以在从DOM中删除元素之前清除DOM绑定.
如果我执行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
python ×4
django ×3
angularjs ×1
benchmarking ×1
c++ ×1
function ×1
gpu ×1
grunt-usemin ×1
gruntjs ×1
javascript ×1
jinja2 ×1
opencv ×1
translate ×1
xss ×1