我在将我创建的一个 *.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')
任何帮助都感激不尽。