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

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

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

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

Q&A

解決済

2回答

276閲覧

pythonについて

tytypri

総合スコア13

Python

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

0グッド

0クリップ

投稿2019/03/06 23:00

編集2019/03/07 00:26
コード ```### フォルダ1に入っているファイルに、ファイル名の空白を削除、大文字を小文字に変換といった修正を加えた後、修正したファイルフォルダ2に格納する ### import os の lisdir と import shutil の copyfile を用いて行う とのことなのですが、ファイル名に修正した後、フォルダ2に移すことができません。 ### 該当のソースコード ```python import os import shutil def remove_space_and_to_lower(text): text = text.replace(" ", "") text = text.lower() return text html_files = os.lisdir(" test/image-1 ")

#test/image-1 がフォルダ1でフォルダ2がtest/image-1-oという名前でお願いします。

試したこと

上記のコードに続いて、
for html_file in html_files:
print(remove_space_and_to_lower(html_file))
としてフォルダ1のファイル名に修正を加えたものは出力できたのですが、そのファイルをどうしたらいいのかわかりません。

わかるかた、是非教えてください。

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

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

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

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

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

hayataka2049

2019/03/06 23:18

とりあえずソースコードがもう少し見やすいように編集してください。 ```python コード部分 ``` 質問は編集できるので新しく立て直す必要はありません。投稿ミスした質問が1つあるようですが、そちらには削除依頼を出しておいてください。
guest

回答2

0

ベストアンサー

これでいかがでしょうか。

Python

1for html_file in html_files: 2 print(remove_space_and_to_lower(html_file)) 3 shutil.copyfile("test/image-1/" + html_file, "hoge/" + remove_space_and_to_lower(html_file))

投稿2019/03/06 23:31

tokyo

総合スコア35

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

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

tytypri

2019/03/06 23:52

tokyoさん、回答ありがとうございます。 お陰様で実行できました! copyfileの引数に+をするのが初めてなのですが、これはどういった時に用いるのでしょうか? 仕組みについて教えていただけると助かります
tokyo

2019/03/07 04:22

この場合の + は文字の結合です。 フォルダとファイル名を結合して1つの文字列とするために使用しています。 ファイル名の変数「html_file」の値がAiueO.htmlだとしたら、 shutil.copyfile("test/image-1/" + html_file, "hoge/" + remove_space_and_to_lower(html_file)) ↓ shutil.copyfile("test/image-1/" + ”AiueO.html”, "hoge/" + "aiueo.html") ↓ shutil.copyfile("test/image-1/AiueO.html”, "hoge/aiueo.html") 最終的にこの形でコピーが実行されます。 フォルダとファイル名の結合はos.path.join()でもできるようですが今回は単純に+で書きました。
guest

0

shutil.moveを使って移動すれば良いかと思います。移動元と移動先の二つの引数を与えるだけです。

python

1shutil.move("hoge.txt", "fuga.txt")

詳細な使い方はドキュメントを参照してください。

shutil --- 高水準のファイル操作 — Python 3.7.2 ドキュメント

投稿2019/03/06 23:24

hayataka2049

総合スコア30933

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

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

tytypri

2019/03/06 23:27

回答ありがとうございます。 そういった方法を使わせていただきたいのですが、今回はosのlisdir()、shutilのcopyfile()のみ使用して行わないといけないため、shutil.moveは使ってはいけないんです^^;
hayataka2049

2019/03/06 23:37

shutil.copyfileなら元のファイルが消えないという違いはありますがそれ以外は同様に使えるかと。要件が「元のファイルをmoveしてrename」なのか「元のファイルをcopyしてrename」なのかによります
tytypri

2019/03/06 23:56

copyしてrenameだと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問