2016-04-12 6 views
-1

私はPythonプログラムの読み込みと書き込みシーケンスを作成しようとしています。私はPythonにはかなり新しいです。その結果、実際のコードについての驚くべき知識はありません。 .CSVファイルからデータを読み取るのに苦労しています。このファイルには3つの列が含まれています。行の量は、作成したプログラムを使用するユーザーの数によって異なります。さて、私は行を見つける方法を知っていますが、問題は3行すべてのデータが入っている行全体を返してしまうことです。だから私はどのようにデータの断片を分離するのですか?そして、その後、これらのデータを読み込み、書き込み、または上書きできる変数にするにはどうすればよいでしょうか。 プログラムのコンテキストはコンピューティングA453のコースワークであることに注意してください。私は私のために自分の仕事をするように求めていないことを覚えている、私はすでに他の2つのタスクを完了しており、すべての論理とタスク3の計画を立てている。私はこのコースを手渡すまで2週間しか残っていない。データを読み書きできるコードを試してみることは、私のような初心者にとっては非常に難しいことです。.CSVファイルデータの読み込みと上書き

with open('results.csv', 'a', newline='') as fp: 
    g = csv.writer(fp, delimiter=',') 
    data = [[name, score, classroom]] 
    g.writerows(data) 
fp.close() 
# Do the reading 
result = open('results.csv', 'r') 
reader = csv.reader(result) 
new_rows_list = [] 
for row in reader: 
    if row[2] == name: 
     if row[2] < score: 
      result.close() 
      file2 = open('results.csv', 'wb') 
      writer = csv.writer(file2) 
      new_row = [row[2], row[2], name, score, classnumber] 
      new_rows_list.append(new_row) 
      file2.close() 

現時点では、このコードはファイルを読み込みますが、私が望む方法ではありません。私はレコード上のユーザの "名前"(.csvファイル内)を隔離したいと思っています。そうするのではなく、全体の行全体を読み取ります。ユーザーの名前だけに分離する方法はわかりません。私はあなたがこのようなルックスを取得しているものと仮定してい 名スコアクラス番号 JOR 0 2 JOR 0 2 JOR 1 2

答えて

2

ここ

は、.CSVファイル内のデータです

ジェイコブ、14、クラスB、ナンバー3

そして、それが文字列です。

その場合、String.split()が答えです。

String.split()は、文字を引数としてとり、コンマ(Comma分離値)を引数としてとり、文字列内のその文字の各インスタンスの間のすべての配列を返します。そこから

、あなたのプログラムにデータとして結果を使用したい場合、あなたは(同様フロート(X)またはint型(x))をしたいデータ型に値をキャストする必要があり

これが役に立ったら