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

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

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

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

Q&A

解決済

1回答

716閲覧

テキスト名をエクセルに出力したい(python, for)

usuke

総合スコア23

Python 3.x

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

0グッド

0クリップ

投稿2020/01/07 12:52

編集2020/01/07 13:22

ディレクトリに存在するテキスト(im.txt, im2.txt・・・など)の拡張子を抜いてエクセルのB列に出力したいと考えています(B1, B2・・・→im, im2・・・のように)。
ここではim.txtおよびim2.txtの2つのテキストに対して以下のプログラムを作動させてみたのですが、
B1,B2に「im」が、B3からB5に「im2」が出力されてしまいました・・・。
どなたか原因を教えていただけませんか。

python

1 2###テキスト名をエクセルのB列に出力したい 3###1.拡張子なしでファイル名を取得 4###2.for文よりエクセルにテキスト名をのせる 5 6import glob 7import openpyxl as px 8import os 9 10os.chdir('C:\') 11 12a = glob.glob("*.txt") 13 14wb = px.Workbook() 15ws = wb.active 16 17j=1 18for p in a: 19 name = os.path.splitext(os.path.basename(p))[0] 20 for i in name: 21 ws.cell(row=j,column=2).value = name 22 j += 1 23 24wb.save('samp.xlsx')

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

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

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

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

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

guest

回答1

0

ベストアンサー

for文が一個余計で、for i in nameだとnameの文字数分書き込んでしまうようです。

python

1import glob 2import openpyxl as px 3import os 4 5os.chdir('C:\') 6 7a = glob.glob("*.txt") 8 9wb = px.Workbook() 10ws = wb.active 11 12j=1 13for p in a: 14 name = os.path.splitext(os.path.basename(p))[0] 15 ws.cell(row=j,column=2).value = name 16 j += 1 17 18wb.save('samp.xlsx')

投稿2020/01/08 00:40

jeanbiego

総合スコア3966

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

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

usuke

2020/01/08 08:52

なるほど、ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問