用于从文本文件中删除所有文件的脚本

时间:2014-10-12 07:13:16

标签: python string python-2.7 file-io

我正在创建一个脚本,将文本文件中提到的所有文件复制到某个目的地。

这是我的剧本:

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 个答案:

答案 0 :(得分:0)

迭代文件会产生线条。每行包含换行符。

使用str.rstripstr.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')