Лучшее руководство по Python3 вход и выход в 2024 году. В этом руководстве вы можете изучить ,Выходной формат украсит,Старый стиль строки форматирования,Читать ввод с клавиатуры,Чтение и запись файлов,Метод файловых объектов,модуль рассол,
В первых нескольких главах мы фактически коснулись ввода Python и функцию выхода. В этой главе мы представим Python конкретный вход и выход.
способ два значения Python вывода: условия выражения и функция печати ().
Третий способ заключается в использовании метода файлового объекта записи (), стандартный выходной файл может быть использован sys.stdout ссылки.
Если вы хотите вывести в виде более разнообразны, вы можете использовать функцию str.format () для форматирования выходного значения.
Если вы хотите, чтобы превратиться в строковое значение выхода, вы можете использовать магнезии () или функции ул (), чтобы достичь.
>>> s = 'Hello, w3big' >>> str(s) 'Hello, w3big' >>> repr(s) "'Hello, w3big'" >>> str(1/7) '0.14285714285714285' >>> x = 10 * 3.25 >>> y = 200 * 200 >>> s = 'x 的值为: ' + repr(x) + ', y 的值为:' + repr(y) + 'ru.' >>> print(s) x 的值为: 32.5, y 的值为:40000ru. >>> # repr() 函数可以转义字符串中的特殊字符 ru. hello = 'hello, w3big\n' >>> hellos = repr(hello) >>> print(hellos) 'hello, w3big\n' >>> # repr() 的参数可以是 Python 的任何对象 ru. repr((x, y, ('Google', 'w3big'))) "(32.5, 40000, ('Google', 'w3big'))"
Есть два способа вывода квадрат и куб таблицы:
>>> for x in range(1, 11): ru. print(repr(x).rjust(2), repr(x*x).rjust(3), end=' ') ru. # 注意前一行 'end' 的使用 ru. print(repr(x*x*x).rjust(4)) ru. 1 1 1 2 4 8 3 9 27 4 16 64 5 25 125 6 36 216 7 49 343 8 64 512 9 81 729 10 100 1000 >>> for x in range(1, 11): ru. print('{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x)) ru. 1 1 1 2 4 8 3 9 27 4 16 64 5 25 125 6 36 216 7 49 343 8 64 512 9 81 729 10 100 1000
Примечание: В первом примере, пространство между каждой колонки была добавлена печать ().
Этот пример показывает метод rjust объект строки (), который может быть строка справа, и заполнить пространство слева.
Есть подобные методы, такие как ljust () и в центре (). Эти методы ничего не пишут, они просто возвращают новую строку.
Другой метод zfill (), она заполнит в левой цифрой 0, следующим образом:
>>> '12'.zfill(5) '00012' >>> '-3.14'.zfill(7) '-003.14' >>> '3.14159265359'.zfill(5) '3.14159265359'
str.format () основное использование выглядит следующим образом:
>>> print('{}网址: "{}!"'.format('本教程', 'www.w3write.com')) 本教程网址: "www.w3write.com!"
А внутри персонажей круглые скобки (так называемые поля формата) будут заменены параметром формата () в.
Формат позиции () в количестве в скобках используется для указания входящего объекта, следующим образом:
>>> print('{0} 和 {1}'.format('Google', 'w3big')) Google 和 w3big >>> print('{1} 和 {0}'.format('Google', 'w3big')) w3big 和 Google
Если ключевое слово аргумента () в формате, то их значение будет указывать на имя параметра.
>>> print('{name}网址: {site}'.format(name='本教程', site='www.w3write.com')) 本教程网址: www.w3write.com
Место и ключевые аргументы могут быть любой комбинацией:
>>> print('站点列表 {0}, {1}, 和 {other}。'.format('Google', 'w3big', other='Taobao')) 站点列表 Google, w3big, 和 Taobao。'! А' (с использованием ASCII ()), (с использованием Str ()) и (с использованием магнезии ()) может быть использован для форматирования значения до его преобразования 'г!' 'S!':
>>> import math >>> print('常量 PI 的值近似为: {}。'.format(math.pi)) 常量 PI 的值近似为: 3.141592653589793。 >>> print('常量 PI 的值近似为: {!r}。'.format(math.pi)) 常量 PI 的值近似为: 3.141592653589793。
Опции: '', а затем имя и формат идентификатора может поле. Это позволяет лучше формат значения. Следующий пример сохранит Pi до трех знаков после запятой:
>>> import math >>> print('常量 PI 的值近似为 {0:.3f}。'.format(math.pi)) 常量 PI 的值近似为 3.142。
В ':' после прохождения целое число, вы можете по крайней мере убедиться, что существует так много ширина домена. Полезно при использовании в форме озеленения.
>>> table = {'Google': 1, 'w3big': 2, 'Taobao': 3} >>> for name, number in table.items(): ru. print('{0:10} ==> {1:10d}'.format(name, number)) ru. w3big ==> 2 Taobao ==> 3 Google ==> 1
Если у вас есть длинная строка формата, и вы не хотите, чтобы отделить их, то при форматировании по имени переменной, а не место было бы хорошо.
Проще всего пройти в словаре, а затем использовать квадратные скобки '[]' для доступа ключ:
>>> table = {'Google': 1, 'w3big': 2, 'Taobao': 3} >>> print('w3big: {0[w3big]:d}; Google: {0[Google]:d}; ' 'Taobao: {0[Taobao]:d}'.format(table)) w3big: 2; Google: 1; Taobao: 3
Вы также можете использовать переменную перед таблицей '**' для достижения той же функциональности:
>>> table = {'Google': 1, 'w3big': 2, 'Taobao': 3} >>> print('w3big: {w3big:d}; Google: {Google:d}; Taobao: {Taobao:d}'.format(**table)) w3big: 2; Google: 1; Taobao: 3
Оператор% может быть достигнуто форматирования строк. Форматной строки аргумента влево, как он похож на Sprintf () формулы, а также право замещения, то возвращаемая строка отформатирована например:
>>> import math >>> print('常量 PI 的值近似为:%5.3f。' % math.pi) 常量 PI 的值近似为:3.142。
Поскольку функция str.format () является относительно новым, большая часть кода Python все еще использует оператор%. Однако, так как этот старый формат, в конечном счете быть удалены из языка, вы должны использовать больше str.format ().
Python предоставляет функцию ввода () на входе установлен считывать строку текста из стандарта, стандарт по умолчанию введите является клавиатура.
ввод может получить выражение Python в качестве входных данных и возвращает результат операции.
#!/usr/bin/python3 str = input("请输入:"); print ("你输入的内容是: ", str)
Это дает следующие результаты, соответствующие ввода:
请输入:本教程 你输入的内容是: 本教程
открытый () возвращает объект файла и базовый синтаксис выглядит следующим образом:
open(filename, mode)
Открыть полный список различных режимов файла:
режим | описание |
---|---|
R | Откройте файл в режиме только для чтения. Файл указатель будет помещен в начале файла. Этот режим используется по умолчанию. |
Р.Б. | Открыть файл для чтения только в двоичном формате. Будет ли файловый указатель в начало файла. Этот режим используется по умолчанию. |
г + | Открыть файл для чтения и записи. Будет ли файловый указатель в начало файла. |
Р.Б. + | Открыть файл для чтения и записи в двоичном формате. Будет ли файловый указатель в начало файла. |
вес | Открыть файл только для записи. Если файл уже существует, он будет перезаписан. Если файл не существует, создать новый файл. |
термометру | Открыть файл для записи только в двоичном формате. Если файл уже существует, он будет перезаписан. Если файл не существует, создать новый файл. |
ш + | Открыть файл для чтения и записи. Если файл уже существует, он будет перезаписан. Если файл не существует, создать новый файл. |
термометру + | Открыть файл для чтения и записи в двоичном формате. Если файл уже существует, он будет перезаписан. Если файл не существует, создать новый файл. |
Открыть файл для добавления. Если файл уже существует, то указатель файл будет помещен в конце файла. Другими словами, после того, как новое содержание будет записано в существующий контент. Если файл не существует, создайте новый файл для записи. | |
аб | Открыть файл для Append в двоичном формате. Если файл уже существует, то указатель файл будет помещен в конце файла. Другими словами, после того, как новое содержание будет записано в существующий контент. Если файл не существует, создайте новый файл для записи. |
а + | Открыть файл для чтения и записи. Если файл уже существует, то указатель файл будет помещен в конце файла. Это будет режим открыт файл добавления. Если файл не существует, создать новый файл для чтения и записи. |
аб + | Открыть файл для Append в двоичном формате. Если файл уже существует, то указатель файл будет помещен в конце файла. Если файл не существует, создать новый файл для чтения и записи. |
Следующие примеры будут записаны в файл foo.txt в строке:
#!/usr/bin/python3 # 打开一个文件 f = open("/tmp/foo.txt", "w") f.write( "Python 是一个非常好的语言。\n是的,的确非常好!!\n" ) # 关闭打开的文件 f.close()
Открывает файл foo.txt, выглядит следующим образом:
$ cat /tmp/foo.txt Python 是一个非常好的语言。 是的,的确非常好!!
В этом примере предполагается, что оставшаяся часть создает объект файла под названием F 'S.
Чтобы прочитать содержимое файла, вызовите f.read (размер), который будет считывать определенное количество данных, а затем возвращается в виде строки или байты объекта.
размер является необязательным числовой параметр. Когда размер игнорируется или имеет отрицательное значение, все содержимое файла будет считан и возвращается.
В следующем примере предполагается, что файл foo.txt существует (в приведенном выше примере было создано):
#!/usr/bin/python3 # 打开一个文件 f = open("/tmp/foo.txt", "r") str = f.read() print(str) # 关闭打开的文件 f.close()
Вышеприведенная программа, выход:
Python 是一个非常好的语言。 是的,的确非常好!!
f.readline () вы читаете одну строку из файла. Newline символ '\ п'. f.readline () возвращает пустую строку, если, пояснил, что он был прочитан до последней строки.
#!/usr/bin/python3 # 打开一个文件 f = open("/tmp/foo.txt", "r") str = f.readline() print(str) # 关闭打开的文件 f.close()
Вышеприведенная программа, выход:
Python 是一个非常好的语言。
f.readlines () возвращает все строки, содержащиеся в файле.
Если необязательные параметры sizehint, а затем прочитать байты заданной длины, и эти байты разделены линией.
#!/usr/bin/python3 # 打开一个文件 f = open("/tmp/foo.txt", "r") str = f.readlines() print(str) # 关闭打开的文件 f.close()
Вышеприведенная программа, выход:
['Python 是一个非常好的语言。\n', '是的,的确非常好!!\n']
Другой способ заключается в перебрать файлового объекта, а затем читает каждую строку:
#!/usr/bin/python3 # 打开一个文件 f = open("/tmp/foo.txt", "r") for line in f: print(line, end='') # 关闭打开的文件 f.close()
Вышеприведенная программа, выход:
Python 是一个非常好的语言。 是的,的确非常好!!
Этот метод очень прост, но он не обеспечивает хороший контроль. И из-за различного механизма обработки, то лучше не смешивать.
f.write (строка) Строка записывается в файл, и возвращает количество записанных символов.
#!/usr/bin/python3 # 打开一个文件 f = open("/tmp/foo.txt", "w") num = f.write( "Python 是一个非常好的语言。\n是的,的确非常好!!\n" ) print(num) # 关闭打开的文件 f.close()
Вышеприведенная программа, выход:
29
Если вы хотите, чтобы написать некоторые из вещей, которые не является строкой, то вам нужно быть преобразованы:
#!/usr/bin/python3 # 打开一个文件 f = open("/tmp/foo1.txt", "w") value = ('www.w3write.com', 14) s = str(value) f.write(s) # 关闭打开的文件 f.close()
Выше программы, открыть файл foo1.txt:
$ cat /tmp/foo1.txt ('www.w3write.com', 14)
f.tell () возвращает позицию файла-объекта в настоящее время находится, это число байтов от начала подсчета файла.
Если вы хотите изменить текущее положение файла, вы можете использовать f.seek (офсет, from_what) функция.
From_what значение, если это начало 0 указывает на то, если это конец 1 указывает на текущее положение, 2 для файла, например:
from_what значение по умолчанию равно 0, то есть, начало файла. Вот полный пример:
>>> f = open('/tmp/foo.txt', 'rb+') >>> f.write(b'0123456789abcdef') 16 >>> f.seek(5) # 移动到文件的第六个字节 5 >>> f.read(1) b'5' >>> f.seek(-3, 2) # 移动到文件的倒数第三字节 13 >>> f.read(1) b'd'
Когда вы закончите с файлом, вызовите f.close (), чтобы закрыть файл и освободить системные ресурсы, если вы попытаетесь вспомнить файл, создается исключение.
>>> f.close() >>> f.read() Traceback (most recent call last): File "<stdin>", line 1, in ? ValueError: I/O operation on closed file <pre> <p> 当处理一个文件对象时, 使用 with 关键字是非常好的方式。在结束后, 它会帮你正确的关闭文件。 而且写起来也比 try - finally 语句块要简短:</p> <pre> >>> with open('/tmp/foo.txt', 'r') as f: ru. read_data = f.read() >>> f.closed True
Объект File Существуют и другие методы, такие как isatty () и trucate (), но они, как правило, меньше.
Модуль Python рассол реализует основную последовательность данных и десериализации.
Нам удалось сохранить операцию сериализации модуля рассол целевой программы, выполняемой информацию в файл для постоянного хранения.
По модуля маринад десериализации, мы можем создать программу для сохранения объекта из файла.
Базовый интерфейс:
pickle.dump(obj, file, [,protocol])
С помощью этого объекта рассол, чтобы иметь возможность открыть файл как для чтения:
x = pickle.load(file)
Примечание: Чтение строки из файла, а также реконструкцию своих исходных объектов Python.
Файл: файл-подобный объект с правами на чтение () и Readline () интерфейс.
Пример 1:
#!/usr/bin/python3 import pickle # 使用pickle模块将数据对象保存到文件 data1 = {'a': [1, 2.0, 3, 4+6j], 'b': ('string', u'Unicode string'), 'c': None} selfref_list = [1, 2, 3] selfref_list.append(selfref_list) output = open('data.pkl', 'wb') # Pickle dictionary using protocol 0. pickle.dump(data1, output) # Pickle the list using the highest protocol available. pickle.dump(selfref_list, output, -1) output.close()
Пример 2:
#!/usr/bin/python3 import pprint, pickle #使用pickle模块从文件中重构python对象 pkl_file = open('data.pkl', 'rb') data1 = pickle.load(pkl_file) pprint.pprint(data1) data2 = pickle.load(pkl_file) pprint.pprint(data2) pkl_file.close()