2017-10-23 4 views
1

私は最初の行/ヘッダを小文字にしたい、pythonを使ってディレクトリ内の複数のcsvファイルに入れようとしています。コードとエラーは以下の通りです。コードやその他の方法を修正する方法はありますか?csvファイルのヘッダを小文字にすることができません

import csv 
import glob 

path = (r'C:\Users\Documents') 

for fname in glob(path): 
    with open(fname, newline='') as f: 
     reader = csv.reader(f) 
     row1 = next(reader) 
     for row1 in reader: 
      data = [row1.lower() for row1 in row1] 
      os.rename(row1, data) 

エラーは次のとおりです。

TypeError: rename: src should be string, bytes or os.PathLike, not list 
+1

まず第一に、これは問題を引き起こす可能性があります:ROW1でROW1のために? – rahlf23

+0

'os.rename'はファイルの名前を変更するためのものです。 'row1 = [row1のエントリのための[entry.lower()]'のような下部ケーシングを実行して、新しいCSVテーブルをディスクに書き戻したいと思うようです。 – scnerd

答えて

0

私はあなたが行と列混ぜアップを取得していると思います。ここではいくつかのテストされていないコードが何をしたいんだもの、私は思う:

import csv 
from glob import glob 

path = (r'C:\Users\Documents\*.csv') # Note wildcard character added for glob(). 

for fname in glob(path): 
    with open(fname, newline='') as f: 
     reader = csv.reader(f) 
     header = next(reader) # Get the header row. 
     header = [column.lower() for column in header] # Lowercase the headings. 
     rows = [header] + list(reader) # Read the rest of the rows. 

    with open(fname, 'w', newline='') as f: 
     writer = csv.writer(f) 
     writer.writerows(rows) # Write new header & original rows back to file. 
+0

ありがとうございました。それは2つの場所でのコードの変更を除いてはたらきました – subash707

+0

subash707:それを聞いてうれしいです。私はちょうど1つの問題を見てそれを修正しました。他は何でしたか?いずれにせよ、私の答えを受け入れることを検討してください。 [誰かが私の質問に答えると、_私は何をするべきですか?_(http://stackoverflow.com/help/someone-answers) – martineau

+0

glob.glob(path)がエラーで投げていたようです。TypeError: 'module'オブジェクトはありません他の[行のための行のリーダー]代わりにリーダー。 – subash707

関連する問題