2017-11-20 6 views
1

私はconfig.datファイルを読み込んでshutilを使ってファイルをコピーしようとしています。
このファイルは単純です:、 /ホーム/管理/ドキュメント/ file1の /ホーム/管理/ドキュメント/ FILE2設定リストからpython3 shutilエラーをコピーしています

コードは、作業を行いますが、それは大丈夫FILE1をコピーしますが、それはそこのn \を参照してくださいので、その後FILE2をミス私の推測は、新しい行のためです。

#!/usr/bin/python3 
import shutil 
data = open("config.dat") 
filelist = data.read() 
src = filelist 
dest = '/home/admin/Documents/backup/' 
shutil.copy(src, dest) 

エラーコードイムは、取得:

Traceback (most recent call last): 
    File "./testing.py", line 18, in <module> 
    shutil.copy(src, dest) 
    File "/usr/lib/python3.4/shutil.py", line 229, in copy 
    copyfile(src, dst, follow_symlinks=follow_symlinks) 
    File "/usr/lib/python3.4/shutil.py", line 108, in copyfile 
    with open(src, 'rb') as fsrc: 
FileNotFoundError: [Errno 2] No such file or directory: 
'/home/admin/Documents/file1\n/home/admin/Documents/file2' 

私はCONFIG.DATフォルダからファイルに基づいて実行するために、それらのファイルのコピーをしたいと思いますが、それは'\n'を検出します。これを修正する方法はありますか?ファイルとリスト反復のリストを取得する

答えて

2

使用split('\n')助けを

感謝。末尾の空白と空行を取り除くには、おそらくfile.strip()を投げてください。

import shutil 


dest = '/home/admin/Documents/backup/' 
with open('config.dat') as data: 
    filelist = data.read().split('\n') 
    for file in filelist: 
     if file: 
      shutil.copy(file.strip(), dest) 

それとも、あなたが助け:)のために、この

with open('config.dat') as data: 
    for file in data: 
     if file: 
      shutil.copy(file.strip(), dest) 
+0

おかげで後のファイルリストを必要としない場合は、かなり戻ってくるいくつかのエラーがそれを変えありどこ...今働いザッツので、今度は両方のファイルが以下のようにコピーされます: import shutil dest = '/ home/admin/Documents/backup /' data = open( 'config.dat') filelist = data.read()。split '\ n')ファイルリスト内のファイル: shutil.copy(file.strip()、 DEST) プリント( "ファイルがコピーされている") これは動作しますが、私はまだエラーを取得:FSRCとしてオープン(SRC、 'RB')で を: FileNotFoundError:[errnoを2]いいえそのようなファイルまたはディレクトリ: '' すべてコピーできませんでした。助言がありますか? –

+0

私の編集を参照してください:if節を追加する – kaidokuuppa

+0

それを見逃しています.....完璧です..助けてくれてありがとう... –

関連する問題