Pythonの研究ノート-PythonファイルI / O

画面に出力

最も簡単な方法は、あなたがそれにゼロ以上のカンマで区切られた式を渡すことができ、print文の出力を使用することです。この機能は、あなたへの発現は、文字列式を渡す変換し、その結果が標準出力に書き込まれ、次のとおりです。

#!/usr/bin/python
# -*- coding: UTF-8 -*- 

print "Python 是一个非常棒的语言,不是吗?"

あなたの標準画面に次のような結果を生成します:

Python 是一个非常棒的语言,不是吗?

読むのキーボード入力

Pythonは、テキストの標準入力ラインから構築された二つの機能を提供し、デフォルトの標準入力はキーボードです。次のとおりです。

  • raw_input
  • 入力

raw_input機能(パイソン2.X)

raw_input([プロンプト])関数は、標準入力から行を読み出し、(末尾の改行を除去する)文字列を返します。

#!/usr/bin/python
# -*- coding: UTF-8 -*- 
 
str = raw_input("请输入:")
print "你输入的内容是: ", str

これは、任意の文字列の入力を求めるプロンプトが表示さして、画面上の同じ文字列を表示します。私は「!こんにちはパイソン」を入力すると、以下のように、その出力は次のようになります。

请输入:Hello Python!
你输入的内容是:  Hello Python!

入力機能

入力([プロンプト])  関数と  raw_input([プロンプト])  と実質的に同様の機能が、Python式入力が入力として受信されてもよく、及び計算結果が返されます。

#!/usr/bin/python
# -*- coding: UTF-8 -*- 
 
str = input("请输入:")
print "你输入的内容是: ", str

これは、入力に対応する次のような結果が生成されます。

请输入:[x*5 for x in range(2,10,2)]
你输入的内容是:  [10, 20, 30, 40]

開閉ファイル

今あなたが読んで、標準入力と標準出力に書き込むことができるという。さて、実際のデータファイルを読み書きする方法を見てみましょう。

Pythonは必要な機能とデフォルトのファイルの基本的な操作方法を提供します。あなたは使用することができ  、ファイル  オブジェクトは、ほとんどのファイル操作を行います。

オープン関数

あなたはそれが読み書きするために呼び出すことができるファイルオブジェクトに関連するメソッドを作成し、ファイルを開くには、Pythonの組み込みのopen()関数を使用する必要があります。

構文:

file object = open(file_name [, access_mode][, buffering])

次のように様々なパラメータの詳細は以下のとおりです。

  • FILE_NAME:file_nameに変数を使用すると、アクセスしたいファイルの名前を含む文字列値です。
  • ACCESS_MODE:読み取り、書き込み、および追加:ACCESS_MODEは、ファイルモードを開くことを決めました。次のようにすべての可能な値の完全なリストを参照してください。このパラメータは必須ではありませんが、デフォルトのファイルが読み取り専用アクセスモード(R)。
  • バッファリング:バッファリングの値に設定されている場合は0、存在することになるのホスティング場合は、バッファリングの値が1を取り、行がファイルにアクセスするために登録します場合値は、この記憶領域のバッファサイズであることを示すバッファの1よりも大きい整数ですあなたは取る場合は負の値、システムのデフォルトのバッファサイズの記憶領域を

ファイルの異なるモードの完全なリストを開きます(bはバイナリを示します)

モード 説明
トン テキストモード(デフォルト)。
バツ 書き込みモードでは、ファイルが既にそれはエラーになります存在する場合は、新しいファイルを作成します。
B バイナリモード。
+ (読み書き)更新されたファイルを開きます。
ザ・ ユニバーサルラップモード(推奨しません)。
R 読み取り専用モードでファイルを開きます。ポインタファイルは、ファイルの先頭に配置されます。これがデフォルトのモードです。
RB 読み取り専用のバイナリ形式のファイルを開きます。ファイルポインタはファイルの先頭に配置されます。これがデフォルトのモードです。一般的に、写真などなど非テキストファイルに使用。
R + 読み込みおよび書き込み用のファイルを開きます。ファイルポインタはファイルの先頭に配置されます。
RB + バイナリ形式の読み込みと書き込みのためにファイルを開きます。ファイルポインタはファイルの先頭に配置されます。一般的に、写真などなど非テキストファイルに使用。
ワット 書き込み専用ファイルを開きます。ファイルが既に存在する場合は、ファイルを開いている最初から編集を開始、元のコンテンツが削除されます。ファイルが存在しない場合は、新しいファイルを作成します。
WB 唯一のバイナリ形式で記述するためのファイルを開きます。ファイルが既に存在する場合は、ファイルを開いている最初から編集を開始、元のコンテンツが削除されます。ファイルが存在しない場合は、新しいファイルを作成します。一般的に、写真などなど非テキストファイルに使用。
+ W 読み込みおよび書き込み用のファイルを開きます。ファイルが既に存在する場合は、ファイルを開いている最初から編集を開始、元のコンテンツが削除されます。ファイルが存在しない場合は、新しいファイルを作成します。
WB + バイナリ形式の読み込みと書き込みのためにファイルを開きます。ファイルが既に存在する場合は、ファイルを開いている最初から編集を開始、元のコンテンツが削除されます。ファイルが存在しない場合は、新しいファイルを作成します。一般的に、写真などなど非テキストファイルに使用。
A 追記用のファイルを開きます。ファイルが既に存在する場合、ファイルポインタはファイルの末尾に配置されます。言い換えれば、新しいコンテンツが既存のコンテンツの後に書き込まれます。ファイルが存在しない場合は、書き込み用に新しいファイルを作成します。
から 追加用のバイナリ形式のファイルを開きます。ファイルが既に存在する場合、ファイルポインタはファイルの末尾に配置されます。言い換えれば、新しいコンテンツが既存のコンテンツの後に書き込まれます。ファイルが存在しない場合は、書き込み用に新しいファイルを作成します。
+ 読み込みおよび書き込み用のファイルを開きます。ファイルが既に存在する場合、ファイルポインタはファイルの末尾に配置されます。ファイルを開いたときにはモードを追加します。ファイルが存在しない場合は、読み出しと書き込みのための新しいファイルを作成します。
AB + 追加用のバイナリ形式のファイルを開きます。ファイルが既に存在する場合、ファイルポインタはファイルの末尾に配置されます。ファイルが存在しない場合は、読み出しと書き込みのための新しいファイルを作成します。

うまくまとめたものでモデルのこれらのタイプ下図:

モード R R + ワット + W A +
読みます + +   +   +
書き込み   + + + + +
作ります     + + + +
網羅     + +    
開始時のポインタ + + + +    
ポインタの終わりに         + +

Fileオブジェクトのプロパティ

ファイルが開かれた後、あなたは、ファイルに関するさまざまな情報を得ることができ、ファイルオブジェクトを持っています。

以下はに関連するすべてのプロパティとファイルオブジェクトのリストです:

プロパティ 説明
file.closed ファイルはそうでない場合はfalse、閉じられている場合はtrueを返します。
file.mode 開いているファイル・アクセス・パターンに戻ります。
ファイル名 ファイルの名前を返します。
file.softspace 印刷出力は、空白文字が続かなければならない場合は、falseを返します。それ以外の場合は、trueを返します。

例を以下に示します。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("foo.txt", "w")
print "文件名: ", fo.name
print "是否已关闭 : ", fo.closed
print "访问模式 : ", fo.mode
print "末尾是否强制加空格 : ", fo.softspace

上記の出力の例:

文件名:  foo.txt
是否已关闭 :  False
访问模式 :  w
末尾是否强制加空格 :  0

close()メソッド

近くFileオブジェクト()の情報を更新する方法は、彼らはもはや書き込むことができた後、任意のバッファを書かないと、ファイルを閉じていません。

ファイルオブジェクト参照が別のファイルに再割り当てされた場合、Pythonは前にファイルを閉じます。閉じるclose()メソッドを持つファイルは、良い習慣です。

構文:

fileObject.close()

例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("foo.txt", "w")
print "文件名: ", fo.name
 
# 关闭打开的文件
fo.close()

上記の出力の例:

文件名:  foo.txt

読み取りと書き込みのファイル:

ファイルオブジェクトは、一連のメソッドを提供し、より簡単にアクセスファイルに私たちを可能にします。読み取りと書き込みのファイルへの読み取り()とwrite()メソッドを使用する方法を参照してください。

write()メソッド

write()メソッドは文字列が開いているファイルのいずれであってもよい書き込みます。Pythonの文字列ではなく単なるテキストよりもバイナリデータであることができる、ということに注意することが重要です。

write()メソッドは文字列の最後に改行文字(「\ nは」)を追加しません。

構文:

fileObject.write(string)

在这里,被传递的参数是要写入到已打开文件的内容。

例子:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("foo.txt", "w")
fo.write( "www.runoob.com!\nVery good site!\n")
 
# 关闭打开的文件
fo.close()

上述方法会创建foo.txt文件,并将收到的内容写入该文件,并最终关闭文件。如果你打开这个文件,将看到以下内容:

$ cat foo.txt 
www.runoob.com!
Very good site!

read()方法

read()方法从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。

语法:

fileObject.read([count])

在这里,被传递的参数是要从已打开文件中读取的字节计数。该方法从文件的开头开始读入,如果没有传入count,它会尝试尽可能多地读取更多的内容,很可能是直到文件的末尾。

例子:

这里我们用到以上创建的 foo.txt 文件。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("foo.txt", "r+")
str = fo.read(10)
print "读取的字符串是 : ", str
# 关闭打开的文件
fo.close()

以上实例输出结果:

读取的字符串是 :  www.runoob

文件位置:


文件定位

tell()方法告诉你文件内的当前位置, 换句话说,下一次的读写会发生在文件开头多少字节之后

seek(offset [,from])方法改变当前文件的位置Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置

如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置

例子:

就用我们上面创建的文件foo.txt。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("foo.txt", "r+")
str = fo.read(10)
print "读取的字符串是 : ", str
 
# 查找当前位置
position = fo.tell()
print "当前文件位置 : ", position
 
# 把指针再次重新定位到文件开头
position = fo.seek(0, 0)
str = fo.read(10)
print "重新读取字符串 : ", str
# 关闭打开的文件
fo.close()

以上实例输出结果:

读取的字符串是 :  www.runoob
当前文件位置 :  10
重新读取字符串 :  www.runoob

重命名和删除文件

Python的os模块提供了帮你执行文件处理操作的方法,比如重命名和删除文件。

要使用这个模块,你必须先导入它,然后才可以调用相关的各种功能。

rename()方法:

rename()方法需要两个参数,当前的文件名和新文件名。

语法:

os.rename(current_file_name, new_file_name)

例子:

下例将重命名一个已经存在的文件test1.txt。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 重命名文件test1.txt到test2.txt。
os.rename( "test1.txt", "test2.txt" )

remove()方法

你可以用remove()方法删除文件,需要提供要删除的文件名作为参数。

语法:

os.remove(file_name)

例子:

下例将删除一个已经存在的文件test2.txt。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 删除一个已经存在的文件test2.txt
os.remove("test2.txt")

Python里的目录:

所有文件都包含在各个不同的目录下,不过Python也能轻松处理。os模块有许多方法能帮你创建,删除和更改目录。

mkdir()方法

可以使用os模块的mkdir()方法在当前目录下创建新的目录们。你需要提供一个包含了要创建的目录名称的参数。

语法:

os.mkdir("newdir")

例子:

下例将在当前目录下创建一个新目录test。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 创建目录test
os.mkdir("test")

chdir()方法(CHange DIRectory)

可以用chdir()方法来改变当前的目录。chdir()方法需要的一个参数是你想设成当前目录的目录名称。

语法:

os.chdir("newdir")

例子:

下例将进入"/home/newdir"目录。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 将当前目录改为"/home/newdir"
os.chdir("/home/newdir")

getcwd()方法:(GET Current Working Directory)

getcwd()方法显示当前的工作目录

语法:

os.getcwd()

例子:

下例给出当前目录:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 给出当前的目录
print os.getcwd()

rmdir()方法(RoMove DIRectory)

rmdir()方法删除目录,目录名称以参数传递。

在删除这个目录之前,它的所有内容应该先被清除。

语法:

os.rmdir('dirname')

例子:

以下是删除" /tmp/test"目录的例子。目录的完全合规的名称必须被给出,否则会在当前目录下搜索该目录。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 删除”/tmp/test”目录
os.rmdir( "/tmp/test"  )

 

发布了19 篇原创文章 · 获赞 0 · 访问量 809

おすすめ

転載: blog.csdn.net/weixin_44151772/article/details/104035316