수색…


input () 및 raw_input () 사용

파이썬 2.x 2.3

raw_input 은 사용자가 텍스트를 입력 할 때까지 기다렸다가 그 결과를 문자열로 반환합니다.

foo = raw_input("Put a message here that asks the user for input")

위의 예제에서 foo 는 사용자가 입력 한 내용을 저장합니다.

Python 3.x 3.0

input 은 사용자가 텍스트를 input 할 때까지 기다린 다음 결과를 문자열로 반환합니다.

foo = input("Put a message here that asks the user for input")

위의 예제에서 foo 는 사용자가 입력 한 내용을 저장합니다.

인쇄 기능 사용

Python 3.x 3.0

파이썬 3에서 인쇄 기능은 함수 형태로되어 있습니다 :

print("This string will be displayed in the output")
# This string will be displayed in the output

print("You can print \n escape characters too.")
# You can print escape characters too.
파이썬 2.x 2.3

파이썬 2에서 프린트는 원래 아래와 같은 문장입니다.

print "This string will be displayed in the output"
# This string will be displayed in the output

print "You can print \n escape characters too."
# You can print escape characters too.

참고 : Python 2 from __future__ import print_function 을 사용하면 사용자가 Python 3 코드와 동일한 print() 함수를 사용할 수 있습니다. 이것은 Python 2.6 이상에서만 사용 가능합니다.

사용자에게 번호를 묻는 기능

def input_number(msg, err_msg=None):
    while True:
        try:
            return float(raw_input(msg))
        except ValueError:
            if err_msg is not None:
                print(err_msg)


def input_number(msg, err_msg=None):
    while True:
        try:
            return float(input(msg))
        except ValueError:
            if err_msg is not None:
                print(err_msg)

그리고 그것을 사용하려면 :

user_number = input_number("input a number: ", "that's not a number!")

또는 "오류 메시지"를 원하지 않는 경우 :

user_number = input_number("input a number: ")

끝에 개행 문자가없는 문자열 인쇄하기

파이썬 2.x 2.3

파이썬 2.X에서 사용하는 전화선 계속 print 최종 print 쉼표로 문을. 자동으로 공간이 추가됩니다.

print "Hello,",
print "World!"
# Hello, World!
Python 3.x 3.0

파이썬 3.x에서 print 함수는 주어진 문자열의 끝에서 출력하는 선택적인 end 매개 변수를 갖는다. 기본적으로 개행 문자이므로 다음과 같습니다.

print("Hello, ", end="\n")
print("World!")
# Hello, 
# World!

하지만 다른 문자열을 전달할 수 있습니다.

print("Hello, ", end="")
print("World!")
# Hello, World!

print("Hello, ", end="<br>")
print("World!")
# Hello, <br>World!

print("Hello, ", end="BREAK")
print("World!")
# Hello, BREAKWorld!

출력을보다 세부적으로 제어하려면 sys.stdout.write 를 사용할 수 있습니다.

import sys

sys.stdout.write("Hello, ")
sys.stdout.write("World!")
# Hello, World!

stdin에서 읽기

파이썬 프로그램은 유닉스 파이프 라인 에서 읽을 수있다. 다음은 stdin 에서 읽는 간단한 예제입니다 :

import sys

for line in sys.stdin:
    print(line)

sys.stdin 은 스트림이라는 점에 유의하십시오. 이것은 for-loop가 스트림이 끝날 때만 종료된다는 것을 의미합니다.

이제 다음과 같이 다른 프로그램의 출력을 파이썬 프로그램에 파이프 할 수 있습니다.

$ cat myfile | python myprogram.py

이 예제에서 cat myfilestdout 출력하는 unix 명령 일 수 있습니다.

또는 fileinput 모듈을 사용하면 편리합니다 :

import fileinput
for line in fileinput.input():
    process(line)

파일에서 입력

파일로부터 입력을 읽을 수도 있습니다. 파일은 내장 함수 open 사용하여 열 수 있습니다. with <command> as <name> 구문 ( '컨텍스트 관리자'라고 함)과 함께 사용하면 open 을 사용하고 파일에 대한 핸들을 쉽게 얻을 수 있습니다.

with open('somefile.txt', 'r') as fileobj:
    # write code here using fileobj

이렇게하면 코드 실행이 블록을 벗어날 때 파일이 자동으로 닫힙니다.

파일을 다른 모드로 열 수 있습니다. 위의 예제에서 파일은 읽기 전용으로 열립니다. 읽기 전용으로 기존 파일을 열려면 r 사용하십시오. 해당 파일을 바이트로 읽으려면 rb 사용하십시오. 기존 파일에 데이터를 추가하려면 a . w 를 사용하여 파일을 만들거나 같은 이름의 기존 파일을 덮어 씁니다. r+ 를 사용하여 읽기 및 쓰기 모두에서 파일을 열 수 있습니다. open() 의 첫 번째 인수는 파일 이름이고 두 번째 인수는 모드입니다. 모드를 비워두면 기본적으로 r 됩니다.

# let's create an example file:
with open('shoppinglist.txt', 'w') as fileobj:
    fileobj.write('tomato\npasta\ngarlic')

with open('shoppinglist.txt', 'r') as fileobj:
    # this method makes a list where each line 
    # of the file is an element in the list
    lines = fileobj.readlines()

print(lines)
# ['tomato\n', 'pasta\n', 'garlic']

with open('shoppinglist.txt', 'r') as fileobj:
    # here we read the whole content into one string:
    content = fileobj.read()
    # get a list of lines, just like int the previous example:
    lines = content.split('\n')

print(lines)
# ['tomato', 'pasta', 'garlic']

파일의 크기가 작 으면 파일 내용 전체를 메모리로 읽는 것이 안전합니다. 파일이 매우 큰 경우에는 줄 단위 또는 청크 단위로 읽는 것이 좋으며 동일한 루프에서 입력을 처리하는 것이 좋습니다. 하기 위해서:

with open('shoppinglist.txt', 'r') as fileobj:
    # this method reads line by line:
    lines = []
    for line in fileobj:
        lines.append(line.strip())

파일을 읽을 때 운영 체제 별 줄 바꿈 문자를 알고 있어야합니다. for line in fileobj 으로 그것들 for line in fileobj 위에 열거 된 것처럼 읽은 라인들에 대해 strip() 을 호출하는 것은 항상 안전합니다.

위의 예에서 열린 파일 ( fileobj )은 항상 파일의 특정 위치를 가리 킵니다. 파일 핸들이 처음 열릴 때 파일 핸들은 파일의 맨 처음을 가리키며 위치 0 입니다. 파일 핸들은 tell 하여 현재 위치를 표시 할 수 있습니다.

fileobj = open('shoppinglist.txt', 'r')
pos = fileobj.tell()
print('We are at %u.' % pos) # We are at 0.

모든 내용을 읽을 때 파일 처리기의 위치는 파일의 끝에 표시됩니다.

content = fileobj.read()
end = fileobj.tell()
print('This file was %u characters long.' % end)
# This file was 22 characters long.
fileobj.close()

파일 핸들러 위치는 필요한 것으로 설정할 수 있습니다.

fileobj = open('shoppinglist.txt', 'r')
fileobj.seek(7)
pos = fileobj.tell()
print('We are at character #%u.' % pos)

또한 주어진 통화 도중 파일 내용에서 길이를 읽을 수 있습니다. 이렇게하려면 read() 대한 인수를 전달하십시오. 인수없이 read() 를 호출하면 파일의 끝까지 읽습니다. 인수를 전달하면 모드에 따라 해당 바이트 수 또는 문자를 읽습니다 (각각 rbr ).

# reads the next 4 characters 
# starting at the current position
next4 = fileobj.read(4)
# what we got?
print(next4) # 'cucu'
# where we are now?
pos = fileobj.tell()
print('We are at %u.' % pos) # We are at 11, as we was at 7, and read 4 chars.

fileobj.close()

문자와 바이트의 차이점을 보여주기 위해 :

with open('shoppinglist.txt', 'r') as fileobj:
    print(type(fileobj.read())) # <class 'str'>

with open('shoppinglist.txt', 'rb') as fileobj:
    print(type(fileobj.read())) # <class 'bytes'>


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow