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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

解決済

1回答

1023閲覧

csvファイルの名前を一括変更

iwhr

総合スコア15

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

0グッド

0クリップ

投稿2019/06/03 07:37

編集2019/06/03 07:54

前提・実現したいこと

excel.csvファイルの名前を一括で変更したいと考えています。
具体的にはファイル名を”example_数字.csv"から”example_アルファベット.csv”に変更したいと考えています。
また、csvファイルの数字は1~10まであり、順番にアルファベットを対応させたいと考えています。
例:
”example_1.csv"→”example_A.csv”
”example_2.csv"→”example_B.csv”
”example_3.csv"→”example_C.csv”

よろしくお願いいたします。

発生している問題・エラーメッセージ

File "<ipython-input-16-9b023aad9210>", line 3 i = [('B'),('C'),('D'),('E'),('F'),('G'),('H'),('I'),('J'),('K'),('L'),('M')]: ^ SyntaxError: invalid syntax

該当のソースコード

python

1#データ取得 2path = '*.csv' 3i = [('A'),('B'),('C'),('D'),('E'),('F'),('G'),('H'),('I'),('J')]: 4#全csvファイルの取得 5flist = glob .glob(path) 6f_list = [] 7#順番を自然順ソートに変更 8for Flist in natsorted(flist): 9 f_list.append(Flist) 10# ファイル名を一括で変更する 11for file in f_list: 12 os.rename(file, 'example_' + str(i) + '.csv') 13

試したこと

上記のソースコードで実行。

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

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

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

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

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

LouiS0616

2019/06/03 07:39

エラーメッセージは読みましたか?^の意味は分かりますか?
iwhr

2019/06/03 07:44

いまいち分かっていないです。 iの定義の仕方が間違っているのでしょうか? i = の後が数字だとできますので、、、
LouiS0616

2019/06/03 07:47

エラーメッセージ内では、^は↑の代わりに使われています。 エラーはここだよ、と指さされているのです。
iwhr

2019/06/03 07:51

ご丁寧に教えていただき、ありがとうございます。 ただ、^の部分である:を削除して実行しても私の実現したいことはできませんでした。 もう少し考えてみたいと思います。
MasahikoHirata

2019/06/03 08:01

まずi=の書き方が。 i=['A','B','C','D','E','F','G',H','I','J'] でいいけど。後ろの’:'が余計。 後はstr(i)ではなくてi[何かの番号]
guest

回答1

0

ベストアンサー

SyntaxError: invalid syntax

これは文法エラーです。

「^」マークが示している通り、i = [('A'),('B'),('C'),('D'),('E'),('F'),('G'),('H'),('I'),('J')]:」の末尾についている:がおかしいということですね。

投稿2019/06/03 07:51

nskydiving

総合スコア6500

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

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

iwhr

2019/06/03 07:59 編集

:を削除すると以下のようなエラーが出力されました。 FileExistsError: [WinError 183] 既に存在するファイルを作成することはできません。: 'example_2.csv' -> "example_['A','B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'].csv" iがアルファベットを順番に認識していないことが原因だと思います。 また、example_1はexample_['A','B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']に名前が変更されました。
nskydiving

2019/06/03 08:07

「str(i)」だと配列のすべての要素を文字列にしてしまいます。 今回の場合は配列の各要素を文字列に変換したいので、「i[0]」のように添え字を指定してください。
iwhr

2019/06/03 08:18 編集

ご回答ありがとうございます。 ご教示いただいたように添え字を指定した場合以下のようなエラーが出力されました。 FileExistsError: [WinError 183] 既に存在するファイルを作成することはできません。: 'example_2.csv' -> 'example_A.csv' 色々やってみたのですが、この後どうすれば順番に名前を変更できるか分かりませんでした。 ご教示のほど、何卒宜しくお願いいたします。
nskydiving

2019/06/03 08:23

エラーメッセージの通り、「example_A.csv」という名前のファイルがすでに存在しているんだと思いますので、このファイルを一度削除してから実行してみてください。
iwhr

2019/06/03 08:29

ご回答ありがとうございます。 「前提・実現したいこと」での説明が足りませんでした。 同じディレクトリ(ファイル)内にある、10個のcsvファイルの名前を以下のように一気に変更したいと考えています。 example_1→example_A example_2→example_B ・ ・ ・ example_10→example_J ファイルを削除する以外に一気に名前を変更する方法はありますでしょうか?
nskydiving

2019/06/03 08:36

一般的なOSでは、同じディレクトリ内に同じ名前のファイルを置くことはできません。 すでに同じ名前のファイルが存在するのであれば、別のディレクトリに保存するか、保存するファイル名を「example_A - コピー」のような別の名前に変える必要があります。
iwhr

2019/06/04 01:16

色々試行錯誤した結果、実行することができました。 たくさんの質問にお答えくださったnskydivingさんをベストアンサーとさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問