[解決済み] あらゆるプログラミング言語でのファイルI/O [終了しました]。
質問
これは、すべてのプログラマが時々抱く共通の疑問であるはずです。 テキストファイルからどのように行を読み取るか?そして、次の質問はいつも、どうやってそれを書き戻すかです。
もちろん、ほとんどの人は日々のプログラミングで高レベルのフレームワークを使っていますが(答え合わせに使うのはいいのですが)、時には低レベルで行う方法を知っておくのもいいでしょう。
私自身は
C
,
C++
と
Objective-C
などの文字列操作言語でどのように行われているかを見ることができれば、どの言語でファイルIOを行うかについてより良い決定を下すのに役立つと思います。特に、以下のような文字列操作の言語でどのように行われるかを見るのは興味深いことだと思います。
python
,
ruby
そしてもちろん
perl
.
ということで、ここでは コミュニティ・リソース 私たち全員が スター をプロファイルに追加して、必要なときに参照することができます。 ファイルI/O を行う必要があるときに参照します。言うまでもなく、私たちは日常的に扱わない言語に触れることができます。
このように答える必要があるのです。
- 新しいテキストファイル「"」を作成します。 fileio.txt "です。
- 最初の行 "hello"をテキストファイルに書き込む。
- 2行目の "world"をテキストファイルに追加します。
- 2行目 "world" を入力文字列に読み込む。
- 入力文字列をコンソールに出力します。
明確化する。
- 1つの回答につき1つのプログラミング言語で行う方法のみを示す必要があります。
- あらかじめテキストファイルが存在しないと仮定します。
- 最初の行を書き込んだ後、テキストファイルを再度開く必要はない
特に言語の制限はありません。
C
,
C++
,
C#
,
Java
,
Objective-C
はすべて素晴らしいです。
でやる方法を知っていれば
Prolog
,
Haskell
,
Fortran
,
Lisp
または
Basic
であれば、どうぞお進みください。
どのように解決するのですか?
Python 3
with open('fileio.txt', 'w') as f:
f.write('hello')
with open('fileio.txt', 'a') as f:
f.write('\nworld')
with open('fileio.txt') as f:
s = f.readlines()[1]
print(s)
明確な説明
-
readlines() は リスト を返します。 したがって、readlines() を実行すると、ファイルの各行が読み込まれることになります。 このような場合、readlines() を使用するのは問題ありません。なぜなら、どのみちファイル全体を読まなければならないからです (最終行が必要なのです)。 しかし、ファイルが何行もあり、その n 行目を表示したいだけなら、ファイル全体を読む必要はありません。 ここでは、Pythonでファイルのn行目を取得するためのより良い方法を紹介します。 Python 3でxreadlines()の代わりになるものは何ですか? .
-
このwithステートメントとは何でしょうか? withステートメントは、コードブロックの先頭で、変数fを ストリームオブジェクト として使用します。 withブロックが終了すると、pythonは自動的にf.close()を呼び出します。 これにより、withブロックをいつどのように終了しても(たとえ未処理の例外で終了しても)、終了時にファイルがクローズされることが保証されます。 (たとえ処理されない例外によって終了したとしても)。明示的に f.close() を呼び出すこともできますが、コードが例外を発生させて f.close() の呼び出しに至らなかったらどうでしょう?そのためにwith文は便利なのです。
-
操作のたびにファイルを開き直す必要がない。1つのブロックの中に全コードを書くことができます。
with open('fileio.txt', 'w+') as f: f.write('hello') f.write('\nworld') s = f.readlines()[1] print(s)
3つの操作の違いを強調するために、3つのwithブロックを使いました。 write (mode 'w'), append (mode 'a'), read (mode 'r', default)です。
関連
-
[解決済み] LaTeXでバックスラッシュを印刷する方法
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
-
[解決済み] ファイルを作成し、書き込むにはどうすればよいですか?
-
[解決済み] ファイルに行を書き込む正しい方法?
-
[解決済み] Rでテキスト行をファイルに書き込む
-
[解決済み】Rust 1.xでファイルを読み書きするデファクトの方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン