ホームページ  >  記事  >  バックエンド開発  >  赤いヘッダー ファイルを使わずに Lao Qi から Python を学ぶ (2)

赤いヘッダー ファイルを使わずに Lao Qi から Python を学ぶ (2)

WBOY
WBOYオリジナル
2016-06-16 08:41:301118ブラウズ

ファイル属性

いわゆる属性は、ファイル オブジェクトを通じて取得できるものです。

コードをコピー コードは次のとおりです:

>>> f = open("131.txt","a")
>>> f.name
'131.txt'
>>> f.mode #現在のファイルを開くモードを表示します
「あ」
>>> f.closed #ファイルが閉じられているかどうか、閉じられている場合は True を返し、開いている場合は False を返します。 誤り
>>> f.close() #ファイルを閉じるための組み込み関数
>>> f.閉店
本当です

ファイルの関連ステータス

多くの場合、ファイルの関連ステータス (属性と呼ばれることもありますが、ここでのファイル属性は上記のファイル属性とは異なりますが、ファイル ステータスと呼んだほうがよいと思います) を取得する必要があります。たとえば、作成などです。日付、アクセス日、変更日、サイズなど。 os モジュールには、この問題を解決できるメソッドがあります:

コードをコピー コードは次のとおりです:
>>> OS をインポート
>>> file_stat = os.stat("131.txt") #このファイルのステータスを表示します
>>>以下の内容から、英単語から推測できるものが多くあります。
posix.stat_result(st_mode=33204, st_ino=5772566L, st_dev=2049L, st_nlink=1, st_uid=1000, st_gid=1000, st_size=69L, st_atime=1407897031, st_mtime=1407734600, 1407734 600)
>>> file_stat.st_ctime 1407734600.0882277 #今度は別の方法で確認してください

>>> インポート時間 >>> time.localtime(file_stat.st_ctime) #今回ははっきりと見てみましょう。
time.struct_time(tm_year=2014, tm_mon=8, tm_mday=11, tm_hour=13, tm_min=23, tm_sec=20, tm_wday=0, tm_yday=223, tm_isdst=0)



ファイルのステータスとファイル属性に関する上記の内容は、ファイルの特定の側面を判断および操作するときに使用される場合があります。特にファイルのプロパティ。たとえば、ファイルを操作する場合、多くの場合、最初にファイルが閉じられたか開かれたかを判断する必要があり、その判断には file.closed 属性を使用する必要があります。

ファイルの組み込み関数

コードをコピー

コードは次のとおりです: >>> ディレクトリ(ファイル) ['__class__', '__delattr__', '__doc__', '__enter__', '__exit__', '__format__', '__getattribute__', '__hash__', '__init__', '__iter__', '__new__', '__reduce__', ' __reduce_ex__'、'__repr__'、'__setattr__'、'__sizeof__'、'__str__'、'__subclasshook__'、'close'、'closed'、'encoding'、'errors'、'fileno'、'flush'、'isatty' 、'mode'、'name'、'newlines'、'next'、'read'、'readinto'、'readline'、'readlines'、'seek'、'softspace'、'tell'、'truncate'、' write'、'writelines'、'xreadlines']
>>>



非常に多くの組み込み関数があるため、すべてを説明することはできません。そのため、主要な関数のみを試すことができます。

コードをコピー

コードは次のとおりです: >>> f = open("131.txt","r") >>> f.read()
「私の名前は qiwsir.n 私のウェブサイトは qiwsir.github.ion ああ、プログラムが好きです」
>>>



file.read() はファイルのすべての内容を読み取ることができます。これは文字列を返し、ファイルのすべての内容をメモリに読み取ることに特に注意してください。考えてみてください。コンテンツが多すぎると、少し悲惨ではないでしょうか?確かに、大きなファイルは決して読まないでください。

コードをコピー

コードは次のとおりです: >>>コンテンツ = f.read() >>> タイプ(続き)
<「str」と入力>



ファイルが比較的大きい場合は、一度にすべてを読み取るのではなく、readline を使用して 1 行ずつ読み取ります。

コードをコピー

コードは次のとおりです:

>>> f = open("131.txt","r")
>>> f.readline() #毎回 1 行を返し、ポインタを下に移動します
「私の名前はqiwsir.nです」
>>> f.readline() #もう一度読んで 1 行に戻ります
「私のウェブサイトは qiwsir.github.ion です」
>>> f.readline()
「ああ、私はプログラムが好きです」
>>> f.readline() #最後の行に到達しました。再度読み取ります。エラーは報告されず、空が返されます
''

この方法は遅すぎると思いますか?もっと楽しいことはありますか?はい、ナイフを振ってセルフゴングをしてください。セルフゴングなしでリードラインを使用することもできます。これは複数の数字であり、複数の行があることを意味します。

コードをコピー コードは次のとおりです:

>>> f = open("131.txt","r")
>>> = f.readlines()
>>>続き
['私の名前は qiwsir.n'、'私のウェブサイトは qiwsir.github.ion'、'ああ、プログラムが好きです']
>>> タイプ(続き)
<「リスト」と入力>
>>> 続きの行:
... 行を印刷
...
私の名前はqiwsirです。

私のウェブサイトは qiwsir.github.io です

ああ、私は番組が好きです

実験から、readlines と read は両方ともファイルの内容を一度に読み取ってメモリに保存するという点で同じであることがわかります。ただし、この 2 つの読み取りには str 型の違いもあります。 、readlines はリストを返し、1 行に 1 つの要素を返すため、for を介して行ごとに出力できます。

印刷行では、リスト内の各要素に注意してください。n で終わるため、印刷結果には空白行が含まれます。理由は以前紹介しましたので、忘れた方は前の講義までスクロールしてください

しかし、大きすぎるファイルをメモリに読み込む必要はないということを皆さんに思い出していただきたいと思います。大きなファイルの場合は、これを行うことをお勧めします:

コードをコピー コードは次のとおりです:

>>> f = open("131.txt","r")
>>>
<ファイル '131.txt'、モード 'r'、0xb757c230 を開きます>
>>> タイプ(f)
<「ファイル」と入力>
>>> f の行:
... 行を印刷
...
私の名前はqiwsirです。

私のウェブサイトは qiwsir.github.io です

ああ、私は番組が好きです

上記はすべて、ファイルを読み取るための組み込み関数とメソッドです。読むだけでなく書くこともあります。いわゆる書き込みとは、内容をファイルに保存することです。使用される組み込み関数は write です。ただし、ファイルに書き込む場合は、ファイルを開くモード (特定の状況に応じて w または a) にも注意する必要があります。

コードをコピー コードは次のとおりです:

>>> f = open("131.txt","a") #このファイルはすでに存在しており、クリアしたくないため、追加モードを使用します
>>> f.write("赤ちゃんがいます。") #この文はファイルの最後に置く必要があります
>F.close()そうして初めて、真に
を書くことができるのです

書き込み効果を見てください:

コードをコピー コードは次のとおりです:

>>> f = open("131.txt","r")
>>> f.readlines() の行:
... 行を印刷
...
私の名前はqiwsirです。

私のウェブサイトは qiwsir.github.io です

ああ、私は番組が好きです

赤ちゃんがいます。 #案の定、この行が追加されました


以上がファイルに対する基本的な操作です。実際、私はファイルについてあまり知りません。興味のある方は、非常に便利なツールである pickle モジュールをググってみてください。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。