base Python - Entrada y Salida

A veces, su programa tendrá que interactuar con el usuario. Por ejemplo, usted querrá obtener el contenido de la entrada del usuario, y para imprimir algunos de los resultados devueltos por el usuario. Podemos respectivamente input()funcionar y printpara cumplir la función de demanda.

Para la entrada, también podemos usar struna variedad de métodos (String, String) clase. Por ejemplo, se puede utilizar el rjustmétodo para obtener una anchura de un alineado a la derecha a la cadena especificada. Usted puede mirar help(str)para más detalles.

Otro tipo común de archivos de entrada y de salida se procesan. Crear, leer y escribir archivos en la mayoría de los programas es esencial para la función, y vamos a explorar este aspecto en este capítulo.

1. entrada de usuario

Guardar el siguiente programa es 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")

salida:

$ 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

Utilizamos el texto rebanar característica de giro. Ya sabemos que podemos utilizar seq[a:b]desde la posición ainicial a la posición bfinal de la secuencia de corte en rodajas . También podemos proporcionar tercer parámetro para determinar la rebanada paso (el paso) . El paso por defecto es 1, devolverá un texto continuo. Dado un paso negativo, como -1la tapa de retorno a través del texto.

input()Función puede tomar una cadena como un argumento, y mostrarlo al usuario. Más tarde se esperará a la entrada del usuario o golpear la tecla de retorno. Una vez que el usuario introduce algo y tecla de retorno Qiaoxia, input()la función devuelve el texto introducido por el usuario.

Obtenemos el texto y voltear. Si el texto del texto original y la misma inversa como la presente, se determina que el texto es un palíndromo .

Ejercicio +

Para comprobar si el texto es parte de la necesidad de ignorar palíndromo de puntuación, espacios y el caso de ellos. Por ejemplo, "Subida a voto, señor." Palíndromo es un fragmento de texto, pero nuestro programa actual no lo cree así. Puede mejorar el programa anterior para reconocer este palíndromo le permitan hacer?

Si necesitas algunos consejos, entonces aquí tienes una idea ......

2. archivo

Se puede crear una parte de filey el uso apropiado de su clase de objeto read, readline, writemétodo para abrir o usar el archivo, y leer o escribir. La capacidad de leer o escribir archivos depende de la manera en la que se especifica para abrir el archivo. Por último, cuando se termine de archivos, puede llamar al closemétodo para contar Python hemos completado el uso del archivo.

Caso (guardar como 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()

salida:

$ python3 io_using_file.py
Programming is fun
When the work is done
if you wanna make your work also fun:
    use Python!

En primer lugar, se utiliza el incorporado en la openfunción y especificar el nombre del archivo, y queremos utilizar para abrir un modo de abrir el archivo. Modo abierto puede ser un modo de lectura 'r'(), el modo de escritura ( 'w') y la modalidad de apertura 'a'(). También podemos elegir ser por el modo de texto ( 't') o el modo binario ( 'b'leer), escritura o texto anexión. De hecho, hay otros modos más están disponibles, help(open)le dará más detalles acerca de ellos. Por defecto, open()será tratado como un archivo de texto ( t EXT) de archivos, y para leer ( r abrirlo EAD) de modo.

En nuestro caso, primero se abre el archivo en modo escritura y el uso del objeto archivo de writemétodos para escribir en un archivo, y finalmente a través de closecerrar el archivo.

A continuación, volver a abrir el mismo archivo en modo de lectura. No necesitamos un patrón especificado como "leer el archivo de texto" es el valor predeterminado. Se utilizó en un bucle readlinepara leer cada línea del método de archivo. Este enfoque completar una serie de filas, en el que el extremo de la línea también incluye un salto de línea. Cuando se devuelve una cadena vacía, significa que hemos llegado al final del archivo, ya través de breakla salida del bucle.
Por último, se closecierra el archivo.

Ahora, se puede comprobar los poem.txtcontenidos del archivo para confirmar que el programa hace de este archivo para escritura y las operaciones de lectura.

3. salmuera

Llamado Python proporciona un Picklemódulo estándar, a través del cual se puede en cualquier almacén de objetos de Python puro en un archivo y más tarde para recuperarlo. Esto se llama * de forma permanente (persistente) * objeto de almacenamiento.

Caso (guardar como 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)

salida:

$ python io_pickle.py
['apple', 'mango', 'carrot']

Para almacenar un objeto en un archivo, en primer lugar hay openque escribir ( w Rite) binario ( b modo de ciertas piezas) para abrir el archivo, y luego llamar a la pickledel módulo de dumpfunciones. Este proceso se llama encapsulación (decapado) .

A continuación, se pasa pickleel módulo de loadrecepción de la función de objeto devuelto. Este proceso se llama desembalaje (deserialiación) .

4. Unicode

Hasta ahora, cuando escribimos o utilizar una cadena, leer o escribir en un archivo, se utiliza únicamente caracteres inglés llano.

Nota: Si está utilizando Python 2, esperamos ser capaces de leer y escribir otros idiomas distintos del inglés, tenemos que utilizar el unicodetipo que todas las letras ual principio, por ejemplo u"hello world".

>>> "hello world"
'hello world'
>>> type("hello world")
<class 'str'>
>>> u"hello world"
'hello world'
>>> type(u"hello world")
<class 'str'>

Cuando leemos o escribimos un archivo o cuando se quiere comunicar, mientras que otros ordenadores en Internet y necesitamos nuestra Unicodecadena se puede convertir a un formato de transmisión y recepción, que se llama "UTF-8". Podemos leer y escribir en este formato, sólo tiene que utilizar un simple argumentos clave a nuestros estándares openfunciones:

# 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)

Ahora se puede ignorar la importdeclaración, estaremos en capítulos módulo de explorar más detalles acerca de sus capítulos.

Cada vez que utilizamos literales Unicode comentarios como escribir un programa anterior, hay que asegurarse de que el programa de Python se ha dicho que estamos utilizando UTF-8, por lo que tenemos que # encoding=utf-8los comentarios colocados en la parte superior de nuestro programa.

Utilizamos io.openy proporciona una "codificación (codificación)" y "decodificar (decodificación)" parámetro para decirle a Python que estamos usando Unicode.

resumen

Hemos discutido sobre los diversos tipos de entrada y salida de manejo tales archivo de contenido, así como sobre el módulo de la salmuera en Unicode.

A continuación, vamos a explorar algunos conceptos inusuales.

recursos

[1] de entrada y salida · Byte de Python

Publicado 66 artículos originales · ganado elogios 101 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/u010705932/article/details/104418053
Recomendado
Clasificación