Python - os.rename (), перемещая * .sqlite ddbb из одной папки в другую - PullRequest
0 голосов
/ 06 мая 2018

У меня проблемы с переносом одного * .sqlite ddbb, который я создал, из одной папки в другую.

это моя попытка:

Import os 
Import sqlite3
Import pandas as pd

#There is some code here to get my pandas dataframe

Тогда цель следующего кода: Создать sqlite ddbb из фрейма данных pandas (dfGlobalProcess) и затем переместить его в другую подпапку с именем «Projects_ddbb». Если бы я мог сохранить его непосредственно в этой другой папке, это было бы здорово.

Это код:

ddbbName='ExampleProject1' #I know this line does nothing right now... but in the future this should be an user input     
ddbbName2= ddbbName + '.sqlite'

conn = sqlite3.connect('' + ddbbName2 +'')     
dfGlobalProcess.to_sql('ProcessesElemFlows', conn, index=False, if_exists='replace') 
conn.close() 

prevName='' + ddbbName2 + ''
newName='Projects_ddbb/' + prevName + ''

os.rename(prevName,newName)

Когда я запускаю этот код, я получаю следующую ошибку:

PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'ExampleProject1.sqlite' -> 'Projects_ddbb/ExampleProject1.sqlite'

Я искал решения здесь в stackoverflow, но я не могу понять, как его решить

если я запускаю тот же код, но перемещаю файл * .txt, который находится в той же папке, в которой хранится ddbb, файл * .txt перемещается в папку 'Projects_ddbb', как и ожидалось.

Похоже, я каким-то образом открыл ddbb, но, поскольку я довольно новичок в Python и программировании в целом, я понятия не имею, как поступить.

Я тоже пробовал что-то подобное, но я не знаю, имеет ли это какой-то смысл ... возможно, нет, потому что это не работает:

os.close('ExampleProject1.sqlite')

Любая помощь будет высоко ценится.

...