Python で open() 関数を使用してファイルを開く方法を指定する方法
ファイルを開くメソッド
open() 関数を使用してファイルを開く場合、いくつかの開きモードがあります。
'r'->読み取り専用
'w'->書き込みのみ。ファイルが既に存在する場合はクリアし、存在しない場合は作成します。
'a'->追加、ファイルの末尾に書き込みます
'b'->画像、音声、Word ファイルを開くなどのバイナリ モード。
'+'->更新 (読み取り可能および書き込み可能)
これに「+」記号が付いているものは少し理解するのが難しいため、コードを参照して感覚を掴んでください。
with open('foo.txt', 'w+') as f: f.write('bar\n') f.seek(0) data = f.read()
上記のコードは書き込むだけでなく読み込むこともできることがわかります。最初に先頭の f.seek(0) を見つける必要があることに注意してください。そうしないと、空のデータが読み取られてしまいます。
「+」記号は読み書き可能であるため、「w+」と「r+」の違いは何なのか混乱する人もいるかもしれません。
つまり、
'w+' はクリアして作成します (ファイルが既に存在する場合はクリアされ、存在しない場合は作成されます。)
'r+' はクリアまたは作成しません
テキスト ファイルを開かないでくださいバイナリモードで
まず以下を参照してください。 コードの「奇妙な」現象。
Windows で、次の内容を含む f.txt ファイルがあるとします。
hello world
コード 1、
with open('f.txt', 'r') as f: print f.readlines() with open('f.txt', 'rb') as f: print f.readlines()
出力
['hello\n', 'world\n'] ['hello\r\n', 'world\r\n']
コード 2、
with open('f.txt', 'rb') as f: data = f.read() with open('f.txt', 'w') as f: f.write(data)
ファイルを開くと次のようになります
hello^M world^M
まず、改行文字「n」と復帰文字「r」の概念を理解してください。
'n'、改行文字 (LF、Line-Feed) は新しい行を指します。
「r」、キャリッジ リターン (CR、Carriage-Return) は、行の先頭に戻ることを意味します。
システムが異なると改行フラグが異なるためです。
windows->'\r\n' unix->'\n' mac->'\r'
これが、Windows の txt を Linux で開いたときに行末に '^M' が付く理由です。
これが、Linux でスクリプトを実行してゲーム データをエクスポートし、それをローカル Windows で開くと 1 行になった理由です。
実際、テキスト ファイルはバイナリ ファイルでもあり、テキスト ファイルは読みやすさを高めるために一部の目に見えない文字を処理します。
Pythonでは、os.linesepを通じて現在のシステムの改行識別子を取得できます。たとえば、Windows では、os.linesep は「rn」です。
Python で改行フラグを操作する場合、どのプラットフォームであっても関係ありません。「n」を使用するだけで、Python は異なるシステムに応じて異なるフラグに自動的に変換します。
上記の理論的根拠により、この記事の冒頭のコードの「奇妙な」現象を分析できます。コード 1 では、テキスト モードで開かれたファイルの場合、改行フラグは Python によって「n」に処理されますが、バイナリ モードで開かれた場合は変更されません。
コード 2 では、バイナリ モードで開き、テキスト モードで書き込みます。バイナリで開いた場合、それは依然として「rn」であり、テキストモードで書くとき、Pythonは「n」を「rn」に変換するため、実際には「rrn」と書くのと同じなので、余分な「^M」が存在します。 。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...
