まず、ファイル
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)