üzerinde() `tempfile.mkstemp` tarafından oluşturulan bir dosyayı kaldırılamaz. Bunu bir geçici dosya oluşturmak ve kapatılması tempfile.NamedTemporaryFile()
kullandığınızda otomatik olarak kaldırılır, ancakİşte benim örnek kod, Windows
Traceback (most recent call last):
File "C:\1.py", line 5, in <module>
os.remove(fname)
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\DOCUME~1\\IEUser\\LOCALS~1\\Temp\\tmp3qv6ppcf.txt'
: Python 3.4.4 kullanarak Windows XP üzerinde çalıştırmak zaman, aşağıdaki hatayı kaldırdı.
Neden Windows, mkstemp
tarafından oluşturulan dosyaları kaldıramıyor? Nerede yanlış yapıyorum? the documentation itibaren
önce onu kapatmayı deneyin mü? –
@ IgnacioVazquez-Abrams: Huh? Onu nerede açtım? Mkstemp() 'sadece dosya oluşturmuyor mu? Kodumda 'open()' yoktur ve 'fname' bir string nesnesidir. –
mkstemp() bir açık dosya tanıtıcısı olan bir ** tuple ** döndürdüğünü unutmayın. Bu tanıtıcıyı kapatmayıncaya kadar dosya kullanımdadır (başka bir işlemle: kendi isteğinizle). Os.remove() nasıl çalıştığından dolayı Windows'da çalışır (_On Windows, kullanımda olan bir dosyayı kaldırma girişiminde bir istisnanın kaldırılmasına neden olur; Unix'te, dizin girdisi kaldırılır, ancak dosyaya ayrılan depolama alanı değil. Orijinal dosya artık kullanımda olana kadar kullanılabilir.) –