私はそこに.txtファイルを含むフォルダを持っています。私のコードは、これらのファイルのそれぞれで行数と文字数を見つけ、各ファイルの出力を別のディレクトリの単一のcsvファイルに保存します。 csvファイルはLinecount.csvです。何らかの理由で、出力を印刷すると正しい結果が得られますが、csvファイルへの出力は文字と最終出力の繰り返しで繰り返されます。 printステートメントの出力は正しいです。Pythonのforループの出力をCSVファイルに追加する
csvファイルの場合はありません。
import glob
import os
import csv
os.chdir('c:/Users/dasa17/Desktop/sample/Upload')
for file in glob.glob("*.txt"):
chars = lines = 0
with open(file,'r')as f:
for line in f:
lines+=1
chars += len(line)
a=file
b=lines
c=chars
print(a,b,c)
d=open('c:/Users/dasa17/Desktop/sample/Output/LineCount.csv', 'w')
writer = csv.writer(d,lineterminator='\n')
for a in os.listdir('c:/Users/dasa17/Desktop/sample/Upload'):
writer.writerow((a,b,c)) d.close()
輸入グロブ 輸入OS インポートCSV os.chdir( 'C:/ユーザー/ dasa17 /デスクトップ/サンプル/アップロード'glob.globにファイル( "* TXT" の場合) ):オープン(ファイルと \t文字=ライン= 0 \t' FとしてR '): \t \tはラインのFで: \t \t \tライン+ = 1 \t \t \t文字+ = LEN(ライン) \t \t =ファイル \t \t B =線 \t \tのC =の文字 \t \tプリントオープン(A、B、C) \t \t D =( 'C:/Users/dasa17/Desktop/sample/Output/LineCount.csv' os.listdirにするため、 'W') \t \tライター= csv.writer(D、lineterminator = '\ n') \t \t ( 'c:/ Users/dasa17/Desktop/sample/Upload'): \t \t \t writer.writerow((A、B、C)) \t \t d.close() –
質問を編集して、そこにあなたのコードを含めてください。コメントとして読むことは不可能 – maillard
あなたは、それを行うのが合理的なようなコメントの中にあなたのコードを投稿すると思うのはなぜですか? –