Python - os.rename(),将* .sqlite ddbb从一个文件夹移动到另一个文件夹

时间:2018-05-06 13:12:19

标签: python sqlite movefile

我在将一个* .sqlite ddbb从一个文件夹移动到另一个文件夹时遇到了一些麻烦。

这是我的尝试:

Import os 
Import sqlite3
Import pandas as pd

#There is some code here to get my pandas dataframe

然后以下代码的目标是: 要从pandas数据框(dfGlobalProcess)创建一个sqlite ddbb,然后将其移动到另一个名为“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中搜索了解决方案,但我无法弄清楚如何解决它

如果我运行相同的代码但移动了存储ddbb的同一文件夹中的* .txt文件,* .txt文件将按预期移动到“Projects_ddbb”文件夹。

看起来我以某种方式打开了ddbb,但由于我对Python和编程很新,所以我不知道如何继续。

我也尝试了类似的东西,但我不知道它是否有任何意义......可能不是因为它不起作用:

os.close('ExampleProject1.sqlite')

任何帮助将不胜感激。

0 个答案:

没有答案