Pythonの入出力

16818 ワード

Python入出力
  • 1. printとinput
  • printの基本用法
  • inputの基本用法
  • 小結
  • 2. ファイル読み書き操作
  • クローズファイル
  • を開く
  • ファイルを読む
  • 書き込みファイル
  • その他のファイル操作
  • 1.printとinput
    printの基本的な使い方
    print()はpythonの基本出力関数であり、非常に柔軟な使用方法があり、以下help()でprintの基本的な使用法を表示し、インタラクティブ編集インタフェースにhelp(print)を入力します.
    >>> help(print)
    Help on built-in function print in module builtins:
    
    print(...)
        print(value, ..., sep=' ', end='
    ', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream.

    printのパラメータは次のとおりです.
  • value,...:印刷する値をカンマで区切ります.
  • sep:セパレータ、デフォルトはスペースで区切られます(印刷された各項目間はスペースで区切られます).
  • end:終了文字、デフォルトは改行文字(printデフォルトは改行).
  • file:印刷先オブジェクト、デフォルトは標準出力(他の類似ファイルのオブジェクトに変更可能).
  • flush:fileで指定したストリームオブジェクトにすぐに出力するかどうか.

  • (1)データ型valueは、異なるデータ型であってもよく、各データ項目をカンマで区切る.
    >>> print("Hello World!", "2018/11/18", 3.14)
    Hello World! 2018/11/18 3.14
    

    (2)区切り文字を変更する前の例から分かるように、出力された各項目はスペースで区切られている.seqの値を変更すると、次のように区切り記号のタイプを変更できます.
    >>> print("Hello World!", "2018/11/18", 3.14, sep='#')
    Hello World!#2018/11/18#3.14
    

    (3)変更終了子次の例:
    >>> print("Hello World!")
    ... print("Hello World!")
    Hello World!
    Hello World!
    

    printのデフォルトは改行で終わります.ここでは、endの値を変更して終了文字を変更できます.以下のようにします.
    >>> print("Hello World!", end=' ')
    ... print("Hello World!", end=' ')
    Hello World! Hello World!
    

    (4)出力位置printのデフォルト出力を標準出力に変更し、fileパラメータで出力を変更できます.以下のようにします.
    f=open("out.txt", "w")
    print("Hello World!", file=f)
    f.close()
    

    ここで出力をoutに変更する.txt、outを開きます.txtファイルにはHello World!の内容が表示されます.printはすぐにoutに出力されないことに注意してください.txtファイルの場合、印刷するデータは再バッファに保持され、f.close()に実行されるとファイルにデータが書き込まれます.すぐにファイルに印刷する必要がある場合は、flushパラメータをtrueに変更します.
    Inputの基本的な使い方
    同様に、helpコマンドでinputの使い方を確認し、インタラクティブ編集インタフェースにhelp(input)と入力し、次の結果を得ます.
    >>> help(input)
    Help on built-in function input in module builtins:
    
    input(prompt=None, /)
        Read a string from standard input.  The trailing newline is stripped.
    
        The prompt string, if given, is printed to standard output without a
        trailing newline before reading input.
    
        If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.
        On *nix systems, readline is used if available.
    
    

    inputは標準入力から文字列を読み出し、最後の改行を削除することがわかります.さらに、inputのpromptパラメータは、印刷プロンプト情報と同一であってもよい.ここで読み取ったコンテンツはいずれも文字列に変換されることに注意してください.
    >>> a=input("Input:")
    Input:Hello World!
    >>> type(a)
    <class 'str'>
    >>> b=input("Input:")
    Input:123
    >>> type(b)
    <class 'str'>
    

    整数を読み込む必要がある場合は、intを使用して強制変換を行います.
    >>> c=int(input("Input:"))
    Input:123
    >>> type(c)
    <class 'int'>
    

    小結
    1.printは、異なるデータ型を印刷することができ、データ型を指定する必要はありません.2.print出力時の各項目間はデフォルトでスペースで区切られ、改行で終わり、sependのパラメータで変更できます.3.printはデフォルトで標準出力に出力され、fileパラメータで変更できます.4.Inputは読み込んだデータを文字列に変換します.
    2.ファイルの読み書き操作
    閉じるファイルを開く
    ファイルを開く関数はopen()です.helpを使用して使用方法を表示します.説明が長すぎるため、以下に一部だけ貼り付けます.
    open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
        Open file and return a stream.  Raise IOError upon failure.
    

    説明からopen()の役割は、ファイルを開き、ストリームオブジェクトを返し、失敗した場合にエラーを投げ出すことです.パラメータの意味は、[file]ファイルオブジェクト、テキストファイル、またはバイナリファイルです.[mode]オープンモード(読み取り、書き込み、追加、テキストファイル、バイナリファイルなど)、デフォルトは「テキストを読む」です.[encoding]符号化方式で、デフォルト値はプラットフォームとは無関係です.[errors]符号化エラーの処理方法を指定します.[newline]改行の設定(None,’’,’r’,’r’)では、modeの値は次のようになります.
    Character
    Meaning-
    ‘r’
    読み取り(デフォルト)
    ‘w’
    書き込み
    ‘x’
    新規ファイル、書き込み
    ‘a’
    ファイルの末尾に追加
    ‘b’
    バイナリモード
    ‘t’
    テキストモード(デフォルト)
    ‘+’
    リード/ライト(単独では存在しません)
    ‘U’
    汎用改行
    rb(バイナリリード)、w+(読み書き)など、上記の組み合わせにより異なるモードを実現することができる.注意:**open()を使用してファイルを開いた後、f.close()でファイルを閉じる必要があります.**ファイルを手動で閉じる必要がなく、次のように開くこともできます.
    with open("data.txt") as f:
    	pass
    

    ファイルを読む
    f.read f.readは、ファイル内で指定されたバイト数のデータを読み込むために使用され、バイト数を指定しない場合は、デフォルトでファイル内のすべてのコンテンツを読み出す.
    with open("data.txt") as f:
        print(f.read())
    
    Line one: Hello World!
    Line two: Hello World!
    Line three: Hello World!
    Line four: Hello World!
    

    f.readline f.readlineファイルのローを読み込むために使用されます.
    with open("data.txt") as f:
        print(f.readline())
    
    Line one: Hello World!
    

    f.readlines f.readlineは、ファイル内のすべてのローを読み込むために使用されます.デフォルトでは、すべてのローで構成されるlistが返されます.
    with open("data.txt") as f:
        ret = f.readlines()
        print(type(ret))
        print(ret)
    
    
    ['Line one: Hello World!
    ', 'Line two: Hello World!
    ', 'Line three: Hello World!
    ', 'Line four: Hello World!']

    また、オブジェクトを反復してすべてのローを読み込むこともできます.
    with open("data.txt") as f:
        for line in f:
            print(line, end='')
    
    Line one: Hello World!
    Line two: Hello World!
    Line three: Hello World!
    Line four: Hello World!
    

    ファイルを書く
    f.write f.writeは、文字列をファイルに書き込み、書き込みバイト数を返すために使用されます.
    with open("data.txt", "w") as f:
        print(f.write("Hello World!"))
    
    12
    

    その他のファイル操作
    f.tell f.tellファイルポインタの現在の位置(ファイルの開始位置からのバイト数)を返すために使用されます.
    with open("data.txt", "r") as f:
        f.read(5)
        print(f.tell())
    
    5
    

    f.seek f.seekは、ファイルポインタを指定した場所に移動するために使用されます.使用法は次のとおりです.
    seek(cookie, whence=0, /) method of _io.TextIOWrapper instance
        Change stream position.
    
        Change the stream position to the given byte offset. The offset is
        interpreted relative to the position indicated by whence.  Values
        for whence are:
    
        * 0 -- start of stream (the default); offset should be zero or positive
        * 1 -- current stream position; offset may be negative
        * 2 -- end of stream; offset is usually negative
    

    2つのパラメータがあり、1つ目はオフセットクッキーで、2つ目は開始位置whenceです.開始位置は、ファイルの開始位置(0)、現在位置(1)、ファイルの最後(2)であってもよい.例は次のとおりです.
    with open("data.txt", "r") as f:
        f.seek(5)//     5
        print(f.read())//      
    
     World!