2015-04-27 5 views
-1

Я хочу вставить некоторые переменные в «объект TarFile». Каков правильный путь? Благодарю.Вставить переменные в «объект TarFile» в Python

import tarfile 
import datetime 
import time 

today = datetime.date.today() 
timetoday = time.strftime("%H:%M:%S") 
print today, timetoday 
print timetoday 

dirname="notes" 
dirnamefullpath='/var/log/something' 


print today, timetoday, 'Creating archive:', dirname 

tar = tarfile.open("/backups/files/sitebackup-pythontest-[today]-[timetoday]-[dirname].tar.gz", "w:gz") 
for name in [dirnamefullpath]: 
    tar.add(name) 

ответ

1

Эта линия:

for name in [dirnamefullpath]: 

... делает список с одним элементом, dirnamefullpath, то перебирает, что один элемент.

Если вы хотите фактические файлы в каталоге на вашей файловой системы, имя которого dirnamefullpath, вы должны спросить компьютер для этих имен файлов, как правило, либо с помощью listdir (если вы просто хотите, прямые дети) или walk (если вы хотите, чтобы все потомки, рекурсивно).

В этом случае, поскольку TarFile.add знает, как записаться в каталоги, вы, вероятно, просто хотите прямых детей. Например:

for name in os.listdir(dirnamefullpath): 
    tar.add(name) 
Смежные вопросы