В вашем вопросе отсутствуют детали (среди прочего: какую версию Python вы используете, на какой ОС вы работаете и, что наиболее важно, какая должна быть схема именования для скопированных файлов).
Я предполагаю, что каждая клиентская программа использует файл SQLite с именем «userdata.db», и что вы хотите убедиться, что на FTP-сервере каждая копия идентифицируется по имени пользователя.
Таким образом, пользователь: Pamar будет иметь userdata.db.pamar на ftp-сервере, а пользователь: Lucy получит userdata.db.lucy.
(Надеюсь, у вас есть способ убедиться, что у двух пользователей нет одинаковых имен, кстати).
Самое простое решение, которое я могу придумать, это:
Используйте shutil, чтобы создать временную (локальную) копию базы данных с нужным именем. , передайте его по FTP, затем удалите.
То есть, в случае с пользователем Pamar у вас будет:
- Шаг 1: Скопируйте /userhome/pamar/userdata.db -> /userhome/pamar/userdata.db.pamar
- Шаг 2: FTP-передача /userhome/pamar/userdata.db.pamar -> FTPServer
- Шаг 3. Удалите файл /userhome/pamar/userdata.db.pamar.
Это не очень элегантно, и вы будете использовать некоторое дополнительное пространство в (локальной) файловой системе, пока копирование не будет завершено, и это может быть проблемой, если userdata.db особенно велик (но тогда вы, вероятно, не будете использовать sqlite в первом место).
person
p.marino
schedule
03.06.2014