의 IP 스트림은 무엇입니까?
입출력 컴퓨터의 입력 / 출력에 IO 장지. 런타임 프로그램에 의한 인기, 그리고 데이터가이은 등 데이터 교환, 일반적으로 디스크, 네트워크에 오는 CPU 코어 초고속 계산에 의해 수행되고, 메모리에 상주, 우리는 IO 인터페이스가 필요합니다.
예를 들어, 당신이 방문시나 홈 페이지를 브라우저를 열고, 브라우저는 네트워크시나 페이지 IO를 통해이 프로그램을 얻을해야합니다. 첫째, 브라우저가 HTML로 말해, 서버시나로 데이터를 보낼 것입니다,이 작업은 내가 이상 보내시나 웹 서버에서 다음 데이터라는 출력을 보낼 집 밖으로이며,이 작업은 입력라는 외부로부터 데이터를 수신하는 것입니다. 따라서, 일반적으로, 동작 절차는 완료 IO의 입력 및 출력은 두 개의 데이터 스트림이있다. 물론, 하나의 경우, 예를 들어, 만 입력 작업, 차례로, 디스크 파일에 데이터를 바로 출력 동작을 작성하는 메모리로 디스크에서 파일을 읽을 수있다.
IO 프로그래밍, 스트림 (스트림), 물 파이프의 스트림으로 간주 할 수있는 매우 중요한 개념이다, 물에 물 파이프 데이터,하지만 단방향 흐름이다. 입력 스트림 데이터 흐름은 메모리 (디스크, 네트워크)에 외부로부터이며, 출력 스트림 데이터 흐름은 메모리 외부로부터이다. 웹 브라우징의 경우, 빌드 브라우저와시나의 요구 사이의 서버 두 개 이상의 파이프, 그 수를 모두 송신 데이터뿐만 아니라 데이터 수집한다.
CPU와 훨씬 빠른 속도 주변에 비해 메모리 때문에, IO 프로그래밍, 그래서 속도가 일치하지 않는 심각한 문제가있는 것입니다. 이러한 데이터의 100M는, CPU 100M 출력 데이터는 단 0.01 초를 필요로 디스크에 기록해야하지만, 데이터를 수신이 100M 디스크 10 초 정도 걸릴 수 있으므로, 예를 들어 보자, 그것을 어떻게 할까? 두 가지 방법이 있습니다 :
먼저 CPU는 프로그램 코드 이후, 10 초 100M 디스크에 기록 된 데이터를 다른 현탁 대기시킨 후 아래로 다음 시행이 모드는 IO 동기화라고;
또 다른 방법은 "나는 다른 일을하고 갔다, 걱정하지, 천천히 오래된 쓰기", 디스크가 그냥 말했다 CPU을 기다릴 것입니다 다음, 다음 코드는이 모드를 IO 비동기 호출을 즉시 실행할 수 있습니다.
동기 및 비동기 IO 차이는 수행의 결과를 기다려야하는지 여부이다. 당신이, 당신이 말하는 맥도날드의 식사로 이동처럼 "햄버거에,"웨이터가 당신에게, 미안, 함부르크는 쇼핑을하기 위해 햄버거를 얻기 위해 5 분 정도 기다린 다음 기다렸다 점원 앞에 5 분 서, 이제 어떻게 해요 이 동기 IO이다.
당신은 당신이 잘 쇼핑을, 수, 함부르크 필요가 5 분 기다려야 "햄버거에"웨이터가 당신에게 말을, 우리는 당신이 당신이 한 번에, 그렇지 않으면 (쇼핑몰)을 할 수 있도록 알려 드리겠습니다있는 비동기 IO.
물론, 쓰기 프로그램에 비동기 IO의 사용은 더 높은 동기 IO 성능보다,하지만 단점은 비동기 IO 프로그래밍 모델의 복잡성이다. 그것에 대해 생각, 당신은 "잘 함부르크를"당신이 알게 할 때 알아야하고 당신의 접근 방식도 다르다 확인할 수 있습니다. 웨이터가 당신을 찾아 실행 한 경우 웨이터 보내기 문자 메시지는 당신이 지속적으로 폴링 모드입니다 전화를 확인해야 함을 알려 경우,이 보정 모드이다. 즉, 복잡성은 동기 비동기 IO IO보다 훨씬 높은 수준이다.
IO 기능의 조작이 언어를 프로그래밍, 운영 체제에서 제공하는 사용하기 쉬운 캡슐화 낮은 C 인터페이스를 넣어 각 운영 체제, 파이썬도 예외는 아니다. 우리가 자세히 IO 인터페이스 파이썬 프로그래밍을 논의한다.
OPEN 기능
파이썬 먼저 내장 개방 () 함수, 파일을 열은 읽기 및 쓰기 위해 호출 할 수있는 파일 객체 관련된 방법을 만들 수 있습니다.
구문 :
파일 오브젝트 = 개방 (FILE_NAME 【, ACCESS_MODE [버퍼링])
FILE_NAME : FILE_NAME 변수는 액세스하려는 파일의 이름이 포함 된 문자열 값입니다.
ACCESS_MODE : 읽기, 쓰기, 및 추가 : ACCESS_MODE는 파일 모드를 열기로 결정했다. 로 다음과 모든 가능한 값의 전체 목록을 참조하십시오. 이 매개 변수는 필수는 기본 파일은 읽기 전용 액세스 모드를 ®.
버퍼링 : 버퍼링의 값이 0으로 설정되면, 저장있을 것이다. 버퍼링의 값이 1을 경우, 라인은 파일에 액세스 등록합니다. 값이 기억 영역의 버퍼 크기임을 나타내는 버퍼링 1 이상의 정수 크면. 부정적인 경우, 시스템 기본 주차 구역에 대한 버퍼 크기입니다.
파일 객체 속성
파일이 열린 후에는 파일 객체가, 당신은 파일에 대한 다양한 정보를 얻을 수 있습니다.
다음은 관련된 모든 속성과 파일 객체의 목록입니다 :
파일이 폐쇄 된 경우, 그렇지 않은 경우는 false file.closed true를 반환합니다.
열린 파일 액세스 패턴에 file.mode 반환.
file.name 파일의 이름을 반환합니다.
사용되는 인쇄 출력 file.softspace는, 공백 문자가 와야하는 경우, false를 돌려줍니다. 그렇지 않으면 true를 반환합니다.
close () 메소드
정보를 새로 고치려면 파일 닫기 개체 () 메소드는 더 이상 기록 할 수있는 후 파일을 어떤 버퍼를 작성하고 종료되지 않았습니다.
파일 객체 참조가 다른 파일에 다시 할당 할 때, 파이썬은 전에 파일을 닫습니다. 가까운 () 메소드를 사용하여 파일을 닫습니다 것은 좋은 습관이다.
쓰기 () 메소드
쓰기 () 메소드는 문자열이 열려있는 파일 중 하나가 될 수 있습니다 씁니다. 그것은 점에 유의하는 것이 중요하다, 파이썬 문자열은 이진 데이터,보다는 텍스트가 될 수 있습니다.
쓰기 () 메소드는 개행 문자를 추가하지 않습니다 ( '\ n') 문자열의 끝에 :
() 메소드를 읽고
읽기 () 메서드는 열려있는 파일에서 문자열을 읽습니다. 그것은 점에 유의하는 것이 중요하다, 파이썬 문자열은 이진 데이터,보다는 텍스트가 될 수 있습니다.