質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

4213閲覧

パス一覧を利用したファイルのコピー(移動)

cho

総合スコア23

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2015/10/23 07:57

以下のようにCSV形式でファイル名とファイルが存在するディレクトリまでのパスの一覧があります.

path.txt 001,/~/~/001.txt 003,/~/~/003.txt 012,/~/~/012.txt

これを利用してこの一覧にあるファイルをtargetフォルダに移動あるいはコピーしたいのですが,
どのように書いたらよいでしょうか.
ファイルの存在するディレクトリ階層は一番上の親は同じでそれ以下は分岐していきます.

詳しく解説していただけるとありがたいです.

#python

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

シェルスクリプトで書くほうが楽との回答も有りまして、私もそうだと思うのですが、
ど~しても python で処理したいということでしたら、 shutil が使えるかと思います。
http://docs.python.jp/2/library/shutil.html

python

1import shutil 2import os.path 3 4target = "target_folder_name/" #ターゲットフォルダ名の指定 5for l in open("path.txt").readlines(): #path.txt から1行ずつ読み込んで処理 6 dst,src=l.rstrip().split(",") #ファイル名の一部(拡張子なし)とファイル名のフルパスを dst,srcへ 7 dst=target+dst #ファイル名にコピー先のフォルダ名を付加 8 dst+=os.path.splitext(src) #ファイル名のフルパスから拡張子を拝借(拡張子が不要ならこの行は不要 9 shutil.copy(src,dst)

投稿2015/11/25 07:42

hiro-k

総合スコア902

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ファイル名とファイルが存在するディレクトリまでのパスの一覧があります.

と質問文にお書きですが、サンプルを見ると、
「ファイル名の一部と、ファイル名のフルパスの一覧」
にしか見えません。

どちらが正しいのでしょうか?

コメントを見ての回答追記:
Pythonタグが付いていますが、こういうのは、シェルスクリプトで書くのが楽です。

Bash

1while read line 2do cp ${line%*,} target #行のカンマ以前を削除したものをファイル名としてコピー 3done < path.txt

投稿2015/10/23 09:58

編集2015/10/23 13:21
otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cho

2015/10/23 10:07

すみません。 ご指摘の通り、ファイル名の一部(拡張なし)とファイル名のフルパスになります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問