在Windows上使用多处理,似乎任何打开的文件句柄都由生成的进程继承.这具有锁定它们的令人不快的副作用.
我对以下任一方面感兴趣:
1)防止继承
2)从生成的进程中释放文件的方法
考虑以下代码在OSX上工作正常,但在os.rename上的窗口崩溃
from multiprocessing import Process
import os
kFileA = "a.txt"
kFileB = "b.txt"
def emptyProcess():
while 1:
pass
def main():
# Open a file and write a message
testFile = open(kFileA, 'a')
testFile.write("Message One\n")
# Spawn a process
p = Process(target=emptyProcess)
p.start()
# Close the file
testFile.close()
# This will crash
# WindowsError: [Error 32] The process cannot access the file
# because it is being used by another process
os.rename(kFileA, kFileB)
testFile = open(kFileA, 'a') …Run Code Online (Sandbox Code Playgroud) 跨本地计算机共享源的最佳方法是什么?
我正在开发一个带有svn存储库的跨平台项目.我在一个平台(可能是osx)上执行结账,并进行更改.然后我必须在其他平台上测试我修改过的代码(xp,vista,...)然后再检查它.在机器之间手动复制文件或从网络驱动器运行所有内容是一件痛苦的事情......我有更好的选择吗?