때때로 프로그램은 사용자와 상호 작용해야합니다. 예를 들어, 사용자 입력의 내용을 얻고 싶은 것, 사용자에 의해 반환 된 결과의 일부를 인쇄 할 수 있습니다. 우리는 각각 수있는 input()
기능과 print
요구 기능을 수행 할 수 있습니다.
입력의 경우, 우리는 또한 사용할 수있는 str
다양한 방법 (문자열, 문자열) 클래스를. 예를 들어, 사용 rjust
의 폭을 얻는 방법을 오른쪽 정렬 지정된 문자열. 당신은 볼 수 있습니다 help(str)
자세한 내용은.
입출력 파일의 또 다른 일반적인 타입들이 처리된다. 만들기는 기능에 필수적인 대부분의 프로그램에서 읽기 및 쓰기 파일, 우리는이 장에서이 부분을 모색 할 것입니다.
1. 사용자 입력
다음의 프로그램은 저장 io_input.py
:
def reverse(text):
return text[::-1]
def is_palindrome(text):
return text == reverse(text)
something = input("Enter text: ")
if is_palindrome(something):
print("Yes, it is a palindrome")
else:
print("No, it is not a palindrome")
출력 :
$ python3 io_input.py
Enter text: sir
No, it is not a palindrome
$ python3 io_input.py
Enter text: madam
Yes, it is a palindrome
$ python3 io_input.py
Enter text: racecar
Yes, it is a palindrome
우리는 슬라이스 기능 플립 텍스트를 사용합니다. 우리는 이미 우리가 사용할 수 있습니다 알고있는 seq[a:b]
위치에서 a
위치에 시작 b
에 끝 슬라이스 순서 . 우리는 또한 슬라이스 결정하는 세 번째 매개 변수 제공 할 수있는 단계 (단계)를 . 기본 단계는 1
이 연속 텍스트를 반환합니다. 같은 음의 단계를 감안할 때 -1
텍스트를 반환 플립.
input()
함수는 인수로 문자열을 취할 수 있고, 사용자에게 표시합니다. 나중에는 사용자 입력 또는 리턴 키를 치는 기다립니다. 사용자 입력 뭔가 Qiaoxia 리턴 키를 한 번, input()
함수는 사용자가 입력 한 텍스트를 반환합니다.
우리는 텍스트와 플립을 얻을. 원문 본 것과 같은 역방향의 문자를, 그 텍스트가 있다고 판정 된 경우 회문 .
+ 운동
텍스트는 문장 부호, 공간과 그 사건을 무시하도록 회문 필요의 일부인지 여부를 확인하십시오. 예를 들어, "투표에 선생님 상승."회문 텍스트의 한 부분이지만, 현재의 프로그램은 그렇게 생각하지 않습니다. 이 회문이 수행 할 수 있습니다를 인식 할 수 위의 프로그램을 향상시킬 수 있습니까?
당신은 몇 가지 팁이 필요하면 여기에 당신은 아이디어가 ......
2. 파일
당신의 일부 만들 수 file
와 그 개체 클래스의 적절한 사용 read
, readline
, write
개방에 대한 방법을하거나 파일을 사용하고 읽거나 쓰기. 파일을 읽거나 쓸 수있는 기능은 사용자가 파일을 열 지정하는 방식에 따라 달라집니다. 당신이 파일을 완료 할 때 마지막으로, 당신은 호출 할 수 있습니다 close
우리는 파일의 사용을 완료 한 파이썬을 알려줄 방법.
케이스 (다른 이름으로 저장 io_using_file.py
) :
poem = '''\
Programming is fun
When the work is done
if you wanna make your work also fun:
use Python!
'''
# 打开文件以编辑('w'riting)
f = open('poem.txt', 'w')
# 向文件中编写文本
f.write(poem)
# 关闭文件
f.close()
# 如果没有特别指定,
# 将假定启用默认的阅读('r'ead)模式
f = open('poem.txt')
while True:
line = f.readline()
# 零长度指示 EOF
if len(line) == 0:
break
# 每行(`line`)的末尾
# 都已经有了换行符
#因为它是从一个文件中进行读取的
print(line, end='')
# 关闭文件
f.close()
출력 :
$ python3 io_using_file.py
Programming is fun
When the work is done
if you wanna make your work also fun:
use Python!
첫째, 우리는 내장에 사용하는 open
기능을하고 파일 이름을 지정하고, 우리는 파일 열기 모드를 여는 데 사용할. 열기 모드 읽기 모드 일 수있다 'r'
(), 쓰기 모드 ( 'w'
) 및 추가 모드를 'a'
(). 우리는 또한 텍스트 모드 (에 의해로 선택할 수 있습니다 't'
) 또는 바이너리 모드 ( 'b'
읽을), 쓰기 또는 APPEND 텍스트입니다. 사실 다른 많은 모드를 사용할 수 있습니다 거기에 help(open)
당신이 그들에 대해 더 자세한 정보를 제공 할 것입니다. 기본적으로, open()
그것은 텍스트 파일 (로 처리됩니다 t의 (EXT) 파일 및 읽기 r은 이 EAD 열) 모드.
우리의 경우, 우리는 먼저 쓰기 모드를 사용하여 파일을 열고 파일 객체의 사용 write
을 통해 마지막으로 파일에 쓸 방법을하고 close
파일을 닫습니다.
다음으로, 우리는 읽기 모드에서 동일한 파일을 다시 엽니 다. 우리는로 지정된 패턴을하지 않아도 기본이다 "텍스트 파일 읽기". 우리는 루프에 사용되는 readline
파일 방법의 각 라인을 읽을 수 있습니다. 이 방법은 라인의 끝에도 줄 바꿈이 포함 된 일련의 행을 완료합니다. 빈 문자열이 반환 될 때, 우리는 파일의 끝에 도달하고 통해 것을 의미 break
루프를 종료합니다.
마지막으로, 우리는 close
파일을 닫습니다.
이제, 당신은 확인할 수 있습니다 poem.txt
프로그램을 확인하기 위해 파일의 내용은 쓰기 및 읽기 작업이 파일을 수행합니다.
3. 피클
호출 파이썬은 제공 Pickle
하는 당신이 할 수있는을 통해 표준 모듈, 어떤에서 이를 검색 할 수있는 파일로 저장 순수 파이썬 객체와 이상을. 이것은 * 영구적으로 (영구적으로) * 저장 개체라고합니다.
케이스 (다른 이름으로 저장 io_pickle.py
) :
import pickle
# 我们存储相关对象的文件的名称
shoplistfile = 'shoplist.data'
# 需要购买的物品清单
shoplist = ['apple', 'mango', 'carrot']
# 准备写入文件
f = open(shoplistfile, 'wb')
# 转储对象至文件
pickle.dump(shoplist, f)
f.close()
# 清除 shoplist 变量
del shoplist
# 重新打开存储文件
f = open(shoplistfile, 'rb')
# 从文件中载入对象
storedlist = pickle.load(f)
print(storedlist)
출력 :
$ python io_pickle.py
['apple', 'mango', 'carrot']
파일에서 개체를 저장하려면, 우리는 먼저 필요 open
쓰기에 ( w 라이트) 이진 ( B inary) 모드는 파일을 열고 호출하는 pickle
모듈의 dump
기능을. 이 과정은이라고 캡슐화 (산세) .
다음으로, 우리는 합격 pickle
모듈 load
리턴 된 객체 함수를 수신한다. 이 과정은이라고 풀고 (unpickling) .
4. 유니 코드
우리가 작성하거나 문자열을 사용하면 지금까지, 우리는 일반 영어 문자를 사용하여 파일을 읽거나 쓰기.
참고 : 파이썬 2를 사용하는 경우, 우리가 읽고 다른 영어 이외의 언어를 쓸 수 있도록 노력하겠습니다, 우리는 사용할 필요가
unicode
유형을 모든 문자u
예를 들어 처음에,u"hello world"
.
>>> "hello world"
'hello world'
>>> type("hello world")
<class 'str'>
>>> u"hello world"
'hello world'
>>> type(u"hello world")
<class 'str'>
우리는 읽거나 파일을 작성하거나 우리는 인터넷에있는 다른 컴퓨터 동안 의사 소통을 할 때 우리는 우리의 필요로 할 때 Unicode
문자열이 "UTF-8"이라고 전송 및 수신 형식으로 변환 할 수 있습니다. 우리는 읽을 수있는이 형식의 쓰기, 그냥 우리의 표준에 간단한 키워드 인수를 사용 open
기능 :
# encoding=utf-8
import io
f = io.open("abc.txt", "wt", encoding="utf-8")
f.write(u"Imagine non-English language here")
f.close()
text = io.open("abc.txt", encoding="utf-8").read()
print(text)
이제 무시할 수 import
에서 우리가 될 것입니다, 문 장에서는 모듈 의 장에 대한 자세한 내용을 탐험.
우리는 유니 코드 리터럴은 위의 프로그램을 작성 같은 발언 사용할 때마다, 우리는 우리가 그래서 파이썬 프로그램은, 우리가 UTF-8을 사용하고 있다고 말했다되어 있는지 확인해야합니다 # encoding=utf-8
우리의 프로그램의 상단에 배치 코멘트.
우리는 사용 io.open
하고 우리가 유니 코드를 사용하고 있는지 파이썬을 알려주는 "코딩 (인코딩)"과 "디코딩 (디코딩)"매개 변수를 제공합니다.
개요
우리는뿐만 아니라 유니 코드에 피클 모듈에 대해, 입력 및 출력 등의 콘텐츠 파일 처리의 다양한 유형에 대해 논의했다.
다음으로, 우리는 몇 가지 특이한 개념을 모색 할 것입니다.
자원
[1] 파이썬 입출력 · 바이트