PythonによるLinuxプログラミングインタフェース(4章 read, write, lseek)
4章のP90ページのread, write, lseekのプログラム。
#/usr/bin/env #-*- encoding: utf-8 -*- import sys def pythonic(): try: file = open(sys.argv[1], 'r+', encoding='utf-8') except IOError as e: print("err: " + e) else: try: ap = 2 argc = len(sys.argv) while ap < argc: opt = sys.argv[ap][0] if opt in {'r', 'R'}: length = int(sys.argv[ap][1:]) data = file.read(length) i = 0 while i < length: if opt == 'r': print("{0}".format(data[i])) elif opt == 'R': print("{0}".format(str(ord(data[i])))) i += 1 elif opt == 'w': print(sys.argv[ap][1:]) print(sys.argv[1]) file.write(sys.argv[ap][1:]) elif opt == 's': offset = int(sys.argv[ap][1:]) try: file.seek(offset) except Exception as e: print(e) else: print("{0}: seek succeeded".format(offset)) else: pass ap += 1 finally: file.close() # touch tfile # ./p90_seek_io.py tfile s100000 wabc # ./p90_seek_io.py tfile s10000 R5 if __name__ == '__main__': pythonic()
引数により、ファイルを作成したり、読み込んだりする。
- ファイルホールの部分は、0が表示される。
- ordにより文字列のバイトを表示する部分。