相关疑难解决方法(0)

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

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

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

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

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

python multithreading

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

为什么Python中的元组可以反转但没有__reversed__?

在讨论这个答案时,我们意识到元组没有__reversed__方法.我的猜测是创建迭代器需要改变元组.然而元组玩得很好reversed.为什么不能将这种方法用于reversed工作__reversed__呢?

>>> foo = range(3)
>>> foo
[0, 1, 2]
>>> list(foo.__reversed__())
[2, 1, 0]
>>> foo
[0, 1, 2]
>>> bar = (0, 1, 2)
>>> list(bar.__reversed__())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute '__reversed__'
>>> reversed(bar)
<reversed object at 0x10603b310>
>>> tuple(reversed(bar))
(2, 1, 0)
Run Code Online (Sandbox Code Playgroud)

python reverse iterator tuples immutability

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