Python--ファイルとデータ形式

まず、ファイル

1.1

  • シーケンスデータファイルはセカンダリストレージに保存されています
  • ファイルには、データ記憶装置の一形態であります
  • ドキュメントは、フォームを表示:テキストファイルとバイナリファイル(ファイルの実質的にすべてのバイナリ形式で保存されます)

テキストファイル

  • 単一の特定のコンポーネントによってエンコードされたファイル
  • エンコーディングに、それはまた、長い文字列として保存されています
  • .txtファイル、の.pyファイルなど:それはに適用されます

バイナリファイル

  • 直接0と1のビットにより、何Unicodeはありません
  • 通常0の存在およびバイナリ1の組織構造、即ち、ファイル形式
  • .PNGファイル、.AVIファイルなど:それはに適用されます
#文本形式打开文件
tf=open("f.txt","rt")
print(tf.readline())
tf.close()
#二进制形式打开文件
bf=open("f.txt","rb")
print(bf.readline())
bf.close()

1.2開閉

ファイルを格納するためのハードディスクは、典型的には、状態を保存するには、ファイルを処理する場合、占有状態を作るために最初の文書となる
開閉によって変換された状態変換

1.2.1オープン

<变量名>=open(<文件名>,<打开模式>)

  • 変数名 - >ファイルハンドル
  • ファイル名 - >パスとファイル名(ソースファイルがディレクトリパスで保存することができます)
  • オープンモード - >テキストまたはバイナリ(読み取りまたは書き込み)

オープンモード:

  • 「R」:読み取り専用モード、デフォルト値、ファイルが戻りFileNotFoundError存在しない場合
  • 「W」:書き込みモードをカバーし、ファイルが完全に覆わあり、作成、存在しません。
  • 「X」:書き込みモードを作成し、ファイルが存在しないが作成され、FileExistsErrorリターンがあります
  • 「A」:追加書き込みモード、ファイルが存在しない場合、作成、最終文書の追加コンテンツがあります
  • 「B」:バイナリパターン
  • 「T」:テキストファイルモード、デフォルト値
  • 「+」:R / W / X / Aで使用され、元の基底関数の増加は、同時に読み取りおよび書き込み機能

1.2.2閉じます

<变量名>.close()
    变量名->文件句柄

1.3内容読みます

  • <f>.read(サイズ= -1):パラメータが与えられた場合、先読みサイズの長さの全体の内容を読み取ります
  • <f>.readline(サイズ= -1):パラメータが与えられた場合、単一の行を読み取り、ラインサイズの第1の長さを読み出し
  • <f>.readlines(ヒント= -1):すべての行は、リストを形成するために、各要素の動作をファイルを読み取る;指定されたパラメータ場合、最初の行ヒントを読み出します
#全文本操作
 #法一:一次读入,统一处理.对大文件代价很大
fname=input("输入要打开的文件名")
fo=open(fname,"r")
txt=fo.read()
    #对全文 txt进行处理
fo.close()
 #法二:按数量读入,逐步处理
fname=input("输入要打开的文件名")
fo=open(fname,"r")
txt=fo.read(2)
while txt!="":
    #对 txt进行处理
    txt = fo.read(2)
fo.close()

#逐行操作
 #法一:一次读入,分行处理
fname=input("输入要打开的文件名")
fo=open(fname,"r")
for line in fo.readline():
    print(line)
fo.close()
 #法二:分行读入,逐行处理
fname=input("输入要打开的文件名")
fo=open(fname,"r")
for line in fo:
    print(line)
fo.close()

1.4ファイル書き込み

  • <f>.WRITE(S):ファイルまたはバイトストリームに文字列を書きます
  • <f>.writelines(ライン):要素のリストは、文字列がファイルに書き込まれます
  • <f>.seek(オフセット):意味をオフセット、現在のファイルポインタ位置の動作を変更するには、現在のファイル1-終了位置の0〜始まり、2ファイル
fo=open("output.txt","w+")
ls=["中国","法国","美国"]
fo.writelines(ls)
fo.seek(0) #如果没有该行代码,则文件操作指针默认在最后,程序不会有任何输出
for line in fo:
    print(line)
fo.close()

第二に、フォーマットされたデータを処理します

外形寸法2.1データ編成

2.1.1一次元データ

注文や無秩序ピア関係データ、組織的線形で構成される
などの対応の概念リスト、配列、コレクション、

2.1.2二次元データ

一次元データの複数で構成され、一次元データの組合せ
テーブルは(、ヘッダ部は、2次元データとみなすことができないかもしれない)は、典型的な二次元データであります

2.1.3キューブ

一次元または拡張形で新たな次元の2次元データ
など時間ディメンションのリーグテーブルの大学の拡張として、異なる年のランキング

2.1.4高次元データ

唯一の最も基本的な表示を使用して、複雑なバイナリデータの構造との関係

2.1.5動作期間データ

メモリ< - >表す< - >操作
され
た形式で格納されている< - >データタイプ< - >動作

#高维数据 举例:键值对
{
    'firstname':'Xinxin',
    'lastname':'Wang',
    'address':{
                'stressAddr':'瀍河',
                'city':'洛阳',
                'zipcode':'471000'
                },
    'professional':['Data','Analysis']
}

2.2一次元データ

2.2.1表現

リストタイプを使用して相互順序付けデータ、場合
順不同の場合は、間のデータ型のセット用い
、さらに処理するループのためのデータが横断することができます

2.2.2ストレージ

スペース、コンマ英語、特殊文字などを用いて分離し
たデータの特性の定義は、あまり汎用性のある(スペース区切りを使用する場合、例えば、格納されたコンテンツが空白になることはできません):欠点を

2.2.3治療

そして、表される実施形態の切り替え保存形式(リストまたはセット):プログラムは、プログラムに書き込まれ、データファイルに格納されたデータを読み出します

#一维数据的处理
 #1、从空格分隔的文件中读入数据
 #中国 美国 日本 法国
txt=open(fanme).read()
ls=txt.split()
txt.close() #ls为:['中国','美国','日本','法国']
 #2、采用特殊分隔方式将数据写入文件
ls=['中国','美国','日本']
f=open(fname,"w")
f.write('$'.join(ls))
f.close() #为:中国$美国$日本

2.3二次元データ

2.3.1表現

リストタイプを使用します

  • リストタイプは、2次元データを表現することができます
  • 二次元リスト(リスト内の各要素は、2次元データの行または列を表します)

2.3.2ストレージ

CSVデータ・ストレージ・フォーマット

  • CSV:カンマで区切られたカンマ区切り値#値
  • 国際二次元データ格納形式、一般的な.csv拡張子を受け付け
  • 一次元データを、カンマ区切り、各ライン、空白行
  • エクセル一般的に良好な編集ソフトウェアは、読み取りまたはCSVファイルとして保存することができます

注意を払います

  • 一つの要素が欠落している場合は、まだコンマを保持
  • データ記憶装置などの二次元データヘッダ、別々に格納されてもよいです
  • 一般的な指標習慣:LS [行] [列]、最初の列

2.3.3治療

CSVファイル形式

#二维数据的处理
 #1、从CSV格式的文件中读入数据
fo=open(fname)
ls=[]
for line in fo:
    line=line.replace("\n","") #把每行最后的回车替换为空字符串
    ls.append(line.split(",")) #把每行的元素用逗号分隔开形成列表
fo.close()
 #2、将数据写入CSV格式的文件
ls=[[],[],[]] #二维列表
f=open(fname,"w")
for item in ls:
    f.write(','.join(item)+"\n")
f.close()
 #数据的逐一处理
ls=[[1,2],[3,4],[5,6]]
for row in ls:
    for column in row:
        print(column)

おすすめ

転載: www.cnblogs.com/xxwang1018/p/11571595.html