2014-10-12 2 views
0

Я создаю скрипт, который скопирует все файлы, упомянутые в текстовом файле, в какой-то пункт назначения.Сценарий для удаления всех файлов из текстового файла

Это мой сценарий:

with open('names.txt') as f: 
    for line in f: 
     a = 'cp ' + line + ' /root/dest1' 
     print a 
     os.system(a) 

Это печать ниже команд:

(Incorrect) 

cp 91.txt 
/root/dest1 
cp 92.txt 
/root/dest1 
cp 93.txt 
/root/dest1 
... 

Хотя он должен напечатать так:

(correct) 

cp 91.txt /root/dest1 
cp 92.txt /root/dest1 
cp 93.txt /root/dest1 
... 

Это мой файл

(names.txt) 

91.txt 
92.txt 
93.txt 
94.txt 
95.txt 
96.txt 
97.txt 
98.txt 
99.txt 
9.txt 

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

+1

попробовать: 'line.strip()' – kev

+0

вы хотите для удаления разрыва строки на переменной строке – user2601995

ответ

0

Итерация файла дает строки. Каждая строка содержит новую строку.

Strip с использованием новой строки str.rstrip или str.strip:

with open('names.txt') as f: 
    for line in f: 
     a = 'cp ' + line.rstrip() + ' /root/dest1' 
     # a = 'cp {} /root/dest1'.format(line.rstrip()) 
     print a 
     os.system(a) 

Если вы используете shutil.copy, вам не нужно использовать os.system:

import shutil 

with open('names.txt') as f: 
    for line in f: 
     shutil.copy(line.rstrip(), '/root/dest1') 
Смежные вопросы