Невозможно удалить снимок экрана после того, как я только что сделал его, используя Python 3.0 (процесс не может получить доступ к файлу, потому что он используется другим процессом) - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь создать скрипт на python 3, который делает снимок экрана, загружает его на веб-сайт и затем удаляет снимок экрана с компьютера. Проблема возникает, когда я пытаюсь удалить файл с помощью os.remove (). Я получаю следующую ошибку: «Процесс не может получить доступ к файлу, потому что он используется другим процессом». Есть идеи, как это исправить?


pic = pyautogui.screenshot()

file_name = 'ss-' + nume + "-" + str(random.randint(0, 1000)) + '.png'

pic.save(file_name)

form_data = {
    'image': (file_name, open(file_name, 'rb')),
    'nume': ('', str(nume)),
}
response = requests.post('https://website.com', files=form_data)

print(response)
k = 1

os.remove(file_name)

1 Ответ

1 голос
/ 21 апреля 2019

Проблема, вы открыли файл в open(file_name, 'rb') и не закрывали его перед удалением ()

попробуйте это:

pic = pyautogui.screenshot()

file_name = 'ss-' + nume + "-" + str(random.randint(0, 1000)) + '.png'

pic.save(file_name)

f = open(file_name, 'rb')  # open the file 
form_data = {
    'image': (file_name, f),
    'nume': ('', str(nume)),
}
response = requests.post('https://website.com', files=form_data)

print(response)
k = 1

f.close()  # close file before remove
os.remove(file_name)
...