ホームページ >バックエンド開発 >Python チュートリアル >Python が Csv ファイルでどのように動作するかを示すコード例の共有 (図)

Python が Csv ファイルでどのように動作するかを示すコード例の共有 (図)

黄舟
黄舟オリジナル
2017-05-14 12:01:171415ブラウズ

この記事では、Pythonを使用してCsvファイルを操作するサンプルコードを主に紹介します。必要な友達は参考にしてください。

csvは、フォームに保存されます。テキスト ファイルのtable 次の表のようなデータ:

ファイルの内容は次のとおりです:

No.,Name,Age,Score
1,mayi,18,99
2,jack,21,89
3,tom,25,95
4,rain,19,80

上記の csv ファイルが「test.csv」として保存されているとします。

1. ファイルを読み込みます

Python の使用方法 Excel を操作するのと同じように、列の 1 つ、つまりフィールドを抽出します。 Python に付属の csv モジュールを使用して、これを実現するには 2 つの方法があります。最初のメソッドは、リーダー

関数

を使用して反復可能な

オブジェクト (CSV ファイルなど) を受け取り、ジェネレーター を返すことができ、そこから CSV のコンテンツを解析できます。 たとえば、次のコードは、 CSV の内容全体 (behaviorunit:

#!/usr/bin/python3
# -*- conding:utf-8 -*-
author = 'mayi'

import csv

#读
with open("test.csv", "r", encoding = "utf-8") as f:
  reader = csv.reader(f)
  rows = [row for row in reader]

print(rows)
obtain:
[['No.', 'Name', 'Age', 'Score'],
 ['1', 'mayi', '18', '99'],
 ['2', 'jack', '21', '89'],
 ['3', 'tom', '25', '95'],
 ['4', 'rain', '19', '80']]

を抽出する) のいずれかの列について、次のコードを使用できます:

#!/usr/bin/python3
# -*- conding:utf-8 -*-
author = 'mayi'

import csv

#读取第二列的内容
with open("test.csv", "r", encoding = "utf-8") as f:
  reader = csv.reader(f)
  column = [row[1] for row in reader]

print(column)

を取得するには:

['Name', 'mayi', 'jack', 'tom', 'rain']

すべてのデータが読み取られることに注意してくださいcsv からのデータは str 型です。この方法では、列番号を事前に知っている必要があります。たとえば、名前は列 2 にあり、タイトルの「名前」に基づいてクエリを実行することはできません。このとき、2 番目の方法を使用できます。

2 番目の方法は、リーダー関数に似た DictReader を使用することです。これは反復可能なオブジェクトを受け取り、ジェネレーターを返すことができますが、返された各セルは辞書に配置されます。この辞書のキーはこのセルのタイトル (つまり、列ヘッダー) です。次のコードで DictReader の構造を確認できます:

# -*- conding:utf-8 -*-
author = 'mayi'

import csv

#读
with open("test.csv", "r", encoding = "utf-8") as f:
  reader = csv.DictReader(f)
  column = [row for row in reader]

print(column)
Get:
[{'No.': '1', 'Age': '18', 'Score': '99', 'Name': 'mayi'},
 {'No.': '2', 'Age': '21', 'Score': '89', 'Name': 'jack'},
 {'No.': '3', 'Age': '25', 'Score': '95', 'Name': 'tom'},
 {'No.': '4', 'Age': '19', 'Score': '80', 'Name': 'rain'}]

DictReader を使用して CSV の特定の列を読み取る場合は、列タイトル クエリを使用できます:

#!/usr/bin/python3
# -*- conding:utf-8 -*-
author = 'mayi'

import csv

#读取Name列的内容
with open("test.csv", "r", encoding = "utf-8") as f:
  reader = csv.DictReader(f)
  column = [row['Name'] for row in reader]
print(column)

Get:

['mayi', 'jack', 'tom', 'rain']

2. ファイルを書き込むとき

ファイルを読み取るときは、csv ファイルをリストに読み込み、ファイルを書き込むときは、リスト内の要素が csv ファイルに書き込まれます。

#!/usr/bin/python3
# -*- conding:utf-8 -*-
author = 'mayi'

import csv

#写:追加
row = ['5', 'hanmeimei', '23', '81']
out = open("test.csv", "a", newline = "")
csv_writer = csv.writer(out, dialect = "excel")
csv_writer.writerow(row)
取得:

以上がPython が Csv ファイルでどのように動作するかを示すコード例の共有 (図)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。