• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:teraterm上でpythonを使いcsvファイルでいろいろやりたいんですが,...)

teratermを使用してPythonでCSVファイルの操作方法

このQ&Aのポイント
  • teraterm上でPythonを使用してCSVファイルを操作する方法についてご質問があります。
  • CSVファイルの中の10番目のカラムにある人数を1番目のフィールドをスキップして足し合わせたいですが、まだ理解が不足しています。
  • Pythonのコードを書いてファイルを読み込んでみましたが、うまく動作しません。アドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Pythonでは半角スペースは大切な役割を果します。 ここに投稿する時に行頭のスペースは消されてしまうため全角スペースを入れているのだと考えてそこには触れません。 他には次のような問題がありそうです。 1. 誤:"/usr/bin/env/python"、正:”/usr/bin/env python” 2. 誤:"word[10]"、正:"words[9]" 3. 変数"sum"はfor手前で初期化(sum=0)する必要がある 4. 誤:"string.lower()"、正:"string.atoi()" 5. 1行目を読み飛ばす処理はいろいろ考えられます。10番目が数値の時だけsumに加えると考えると"if words[9].isdigit():"などのif文が使えます。 適切にスペースを使えば、これぐらいで動くようになるかと思います。 最後に今回に限らずプログラミング関連では、次のような情報があるとより適切な回答があると思います。 1. どこでつまづいたのかはコードだけで判らない場合が多いです。実行できなかった時の画面に出力されたメッセージは、できるだけコードを実行しているコマンドラインから全文をコピーしてください。 2. TeraTermの先にあるシステム/OS名(CygwinとかFreeBSDとか)やLinuxであればUbuntu、CentOSなどのDistribution名を書くと、より細かい返信があるかもしれません。 まだ動かなければ、またそのコード全体をコピーして質問をするのが良いでしょう。

参考URL:
http://www.python.jp/doc/release/tut/
yxia001
質問者

補足

すいません。返信が遅くなりました。 一応、アドバイス通りにプログラムを書いてみました。 #!/usr/bi/env python #!coding: utf-8 import sys,string,csv sum = 0 for line in sys.stdin.readlines(): words=string.split(line, ',') if words[9].isdigit(): sum+=string.atoi(words[14])   print sum しかし、やはり動きませんでした。 words=string.split(line, ',') ^ IndentationError: expected an indented block というようなエラーが出てきてしまいました。 書き直しても何度も出てくるのですが解決しません。 ご教授願えますか?

関連するQ&A

専門家に質問してみよう