Python 言語のゼロベース入門チュートリアル (25)

Python OS ファイル/ディレクトリ メソッド

Python 言語のゼロベース入門チュートリアル (24)

39. Python os.openpty() メソッド

概要
os.openpty() メソッドは、新しい疑似端末ペアを開くために使用されます。pty と tty のファイル記述子を返します。

構文
openpty() メソッドの構文は次のとおりです。

os.openpty()

パラメータ戻り値
なしファイル記述子のペア、マスターとスレーブを返します。


次の例は、openpty() メソッドの使用法を示しています。

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

import os

# 主 pty, 从 tty
m,s = os.openpty()

print m
print s

# 显示终端名
s = os.ttyname(s)
print m
print s

上記のプログラムを実行した結果は次のとおりです。

3
4
3
/dev/pty0

40. Python os.pathconf() メソッド

概要
os.pathconf() メソッドは、開いているファイルのシステム構成情報を返すために使用されます。

Unix プラットフォームで利用できます。

構文
fpathconf() メソッドの構文は次のとおりです。

os.fpathconf(fd, name)

パラメータ
名 – ファイル記述子

name – 取得されたシステム構成値。システム値を定義する文字列の場合があります。これらの名前は、多くの標準 (POSIX.1、Unix 95、Unix 98 など) で指定されています。一部のプラットフォームでは、いくつかの追加の名前も定義されています。これらの名前は、ホスト OS の pathconf_names ディクショナリにあります。pathconf_names にない構成変数の場合、名前として番号を渡すこともできます。

戻り値
ファイルのシステム情報を返します。


次の例は、fpathconf() メソッドの使用法を示しています。

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

import os, sys

# 打开文件
fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )

print "%s" % os.pathconf_names

# 获取文件最大连接数
no = os.fpathconf(fd, 'PC_LINK_MAX')
print "Maximum number of links to the file. :%d" % no

# 获取文件名最大长度
no = os.fpathconf(fd, 'PC_NAME_MAX')
print "Maximum length of a filename :%d" % no

# 关闭文件
os.close( fd)

print "关闭文件成功!!"

上記のプログラムを実行した結果は次のとおりです。

关闭文件成功!!

41. Python os.pipe() メソッド

概要
os.pipe() メソッドはパイプを作成するために使用され、それぞれ読み取りと書き込み用のファイル記述子 (r、w) のペアを返します。

構文
pipe() メソッドの構文は次のとおりです。

os.pipe()

パラメータ
なし

戻り値
ファイル記述子のペアを返します。


次の例は、pipe() メソッドの使用法を示しています。

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

import os, sys

print "The child will write text to a pipe and "
print "the parent will read the text written by child..."

# file descriptors r, w for reading and writing
r, w = os.pipe() 

processid = os.fork()
if processid:
    # This is the parent process 
    # Closes file descriptor w
    os.close(w)
    r = os.fdopen(r)
    print "Parent reading"
    str = r.read()
    print "text =", str   
    sys.exit(0)
else:
    # This is the child process
    os.close(r)
    w = os.fdopen(w, 'w')
    print "Child writing"
    w.write("Text written by child...")
    w.close()
    print "Child closing"
    sys.exit(0)

上記のプログラムを実行した結果は次のとおりです。

The child will write text to a pipe and
the parent will read the text written by child...
Parent reading
Child writing
Child closing
text = Text written by child...

42. Python os.popen() メソッド

概要
os.popen() メソッドは、コマンドからパイプを開くために使用されます。

Unix、Windows で有効

文法
popen() メソッドの構文は次のとおりです。

os.popen(command[, mode[, bufsize]])

パラメータ
command – 使用するコマンド。

mode - モード許可は 'r' (デフォルト) または 'w' です。

bufsize - ファイルに必要なバッファ サイズを指定します: 0 はバッファリングなしを意味します; 1 はライン バッファリングを意味します; 他の正の値はパラメータ サイズのバッファを使用することを意味します (おおよその値、バイト単位)。負の bufsize は、システムのデフォルト値を使用することを意味し、一般的に言えば、tty デバイスの場合はライン バッファリングされ、その他のファイルの場合はフル バッファリングされます。パラメータが変更されていない場合、システムのデフォルト値が使用されます。

戻り値 ファイル
記述子が fd である開いているファイル オブジェクトを返します。


次の例は、popen() メソッドの使用法を示しています。

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

import os, sys

# 使用 mkdir 命令
a = 'mkdir nwdir'

b = os.popen(a,'r',1)

print b

上記のプログラムを実行した結果は次のとおりです。

open file 'mkdir nwdir', mode 'r' at 0x81614d0

43. Python os.read() メソッド

概要
os.read() メソッドは、ファイル記述子 fd から最大 n バイトを読み取り、読み取ったバイトを含む文字列を返すために使用されます. ファイル記述子 fd はファイルの末尾に対応し、空の文字列を返します.

Unix、Windows で有効

構文
read() メソッドの構文は次のとおりです。

os.read(fd,n)
パラメータ
fd – ファイル記述子。

n – 読み取られたバイト数。

戻り値 読み取っ
たバイトを含む文字列を返します


次の例は、read() メソッドの使用法を示しています。

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

import os, sys
# 打开文件
fd = os.open("f1.txt",os.O_RDWR)
	
# 读取文本
ret = os.read(fd,12)
print ret

# 关闭文件
os.close(fd)
print "关闭文件成功!!"

上記のプログラムを実行した結果は次のとおりです。

This is test
关闭文件成功!!

44. Python os.readlink() メソッド

概要
os.readlink() メソッドは、ソフト リンクが指すファイルを返すために使用されます。絶対パスまたは相対パスを返す場合があります。

Unix で有効

構文
readlink() メソッドの構文は次のとおりです。

os.readlink(path)

パラメータ
パス – 検索するソフト リンク パス

戻り値
ソフトリンクが指すファイルを返します


次の例は、readlink() メソッドの使用法を示しています。

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

import os

src = '/usr/bin/python'
dst = '/tmp/python'

# 创建软链接
os.symlink(src, dst)

# 使用软链接显示源链接
path = os.readlink( dst )
print path

上記のプログラムを実行した結果は次のとおりです。

/usr/bin/python

45. Python os.remove() メソッド

概要
os.remove() メソッドは、指定されたパスにあるファイルを削除するために使用されます。指定したパスがディレクトリの場合、OSError がスローされます。

このメソッドは unlink() と同じです。

Unix、Windows で利用可能

構文
remove() メソッドの構文は次のとおりです。

os.remove(path)

パラメーター
パス – 削除するファイルのパス

戻り値
メソッドには戻り値がありません


次の例は、remove() メソッドの使用法を示しています。

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

import os, sys

# 列出目录
print "目录为: %s" %os.listdir(os.getcwd())

# 移除
os.remove("aa.txt")

# 移除后列出目录
print "移除后 : %s" %os.listdir(os.getcwd())

上記のプログラムを実行した結果は次のとおりです。

目录为:
[ 'a1.txt','aa.txt','resume.doc' ]
移除后 : 
[ 'a1.txt','resume.doc' ]

46. Python os.removedirs() メソッド

概要
os.removedirs() メソッドは、ディレクトリを再帰的に削除するために使用されます。rmdir() と同様に、 removedirs() は、エラーがスローされるまで、サブフォルダーが正常に削除された場合にのみ親フォルダーを試行します (これは通常、フォルダーが空でないことを意味するため、基本的に無視されます)。

構文
removedirs() メソッドの構文は次のとおりです。

os.removedirs(path)

パラメータ
パス – 削除するディレクトリ パス

戻り値
メソッドには戻り値がありません


次の例は、removedirs() メソッドの使用法を示しています。

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

import os, sys

# 列出目录
print "目录为: %s" %os.listdir(os.getcwd())

# 移除
os.removedirs("/test")

# 列出移除后的目录
print "移除后目录为 %s :" %os.listdir(os.getcwd())

上記のプログラムを実行した結果は次のとおりです。

目录为:
[  'a1.txt','resume.doc','a3.py','test' ]
移除后目录为:
[  'a1.txt','resume.doc','a3.py' ]

47. Python os.rename() メソッド

概要
os.rename() メソッドは、ファイルまたはディレクトリの名前を src から dst に変更するために使用されます。dst が既存のディレクトリである場合、OSError がスローされます。

文法
rename() メソッドの構文は次のとおりです。

os.rename(src, dst)

パラメータ
src – 変更するファイルまたはディレクトリ名

dst – 変更されたファイルまたはディレクトリ名

戻り値
メソッドには戻り値がありません


次の例は、rename() メソッドの使用方法を示しています。

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

import os, sys

# 列出目录
print "目录为: %s"%os.listdir(os.getcwd())

# 重命名
os.rename("test","test2")

print "重命名成功。"

# 列出重命名后的目录
print "目录为: %s" %os.listdir(os.getcwd())

上記のプログラムを実行した結果は次のとおりです。

目录为:
[  'a1.txt','resume.doc','a3.py','test' ]
重命名成功。
[  'a1.txt','resume.doc','a3.py','test2' ]

48. Python os.renames() メソッド

概要
os.renames() メソッドは、ディレクトリまたはファイルの名前を再帰的に変更するために使用されます。rename() に似ています。

構文
renames() メソッドの構文は次のとおりです。

os.renames(old, new)

パラメータ
old – 名前を変更するディレクトリ

new -- ファイルまたはディレクトリの新しい名前。ディレクトリに含まれるファイル、または完全なディレクトリ ツリーの場合もあります。

戻り値
メソッドには戻り値がありません


次の例は、renames() メソッドの使用法を示しています。

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

import os, sys
print "当前目录为: %s" %os.getcwd()

# 列出目录
print "目录为: %s"%os.listdir(os.getcwd())

# 重命名 "aa1.txt"
os.renames("aa1.txt","newdir/aanew.txt")

print "重命名成功。"

# 列出重命名的文件 "aa1.txt"
print "目录为: %s" %os.listdir(os.getcwd())

上記のプログラムを実行した結果は次のとおりです。

当前目录为: /tmp
目录为:
 [  'a1.txt','resume.doc','a3.py','aa1.txt','Administrator','amrood.admin' ]
重命名成功。
目录为:
 [  'a1.txt','resume.doc','a3.py','Administrator','amrood.admin' ]

49. Python os.rmdir() メソッド

概要
指定したパスのディレクトリを削除するには、os.rmdir()メソッドを使用します。フォルダーが空の場合のみ、それ以外の場合は OSError が発生します。

構文
rmdir() メソッドの構文は次のとおりです。

os.rmdir(path)

パラメータ
パス – 削除するディレクトリ パス

戻り値
メソッドには戻り値がありません


次の例は、rmdir() メソッドの使用法を示しています。

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

import os, sys

# 列出目录
print "目录为: %s"%os.listdir(os.getcwd())

# 删除路径
os.rmdir("mydir")

# 列出重命名后的目录
print "目录为: %s" %os.listdir(os.getcwd())

上記のプログラムを実行した結果は次のとおりです。

目录为:
[  'a1.txt','resume.doc','a3.py','mydir' ]
目录为:
[  'a1.txt','resume.doc','a3.py' ]

50. Python os.stat() メソッド

概要
os.stat() メソッドは、指定されたパスでシステム stat 呼び出しを実行するために使用されます。

構文
stat() メソッドの構文は次のとおりです。

os.stat(path)

パラメーター
パス – パスを指定します

戻り値の
stat 構造体:

st_mode: inode 保護モード
st_ino: inode ノード番号。
st_dev: inode が存在するデバイス。
st_nlink: inode のリンク数。
st_uid: 所有者のユーザー ID。
st_gid: 所有者のグループ ID。
st_size: 通常のファイルのバイト単位のサイズ; いくつかの特別なファイルを待っているデータが含まれています。
st_atime: 最終アクセス時刻。
st_mtime: 最終変更時刻。
st_ctime: オペレーティング システムによって報告される "ctime"。一部のシステム (Unix など) では最新のメタデータの変更時刻であり、他のシステム (Windows など) では作成時刻です (詳細については、プラットフォームのドキュメントを参照してください)。


次の例は、stat() メソッドの使用法を示しています。

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

import os, sys

# 显示文件 "a2.py" 信息
statinfo = os.stat('a2.py')

print statinfo

上記のプログラムを実行した結果は次のとおりです。

posix.stat_result(st_mode=33188, st_ino=3940649674337682L, st_dev=277923425L, st
_nlink=1, st_uid=400, st_gid=401, st_size=335L, st_atime=1330498089, st_mtime=13
30498089, st_ctime=1330498089)

おすすめ

転載: blog.csdn.net/weixin_44006731/article/details/129103164