Предисловие:Недавно я начал изучать фреймворк tensorflow, элективный курс позволяет выбрать фреймворк для реализации распознавания и классификации множества рукописных цифр. Сяо Чжань также выбрал tf framework с потоком и следовал руководству во время обучения и работы. Сяо Чжань использовал различные нейронные сети для реализации распознавания и классификации. Одним из шагов является сохранение модели, полученной в процессе обучения. использовать модель в тесте. Думая об этом процессе сначала сохранения, а затем загрузки и вызова, я встречал его во многих местах раньше.Самый простой и наиболее часто используемый — это доступ к файлам в python.Вау! Итак, Сяо Чжань смотрел на звезды ночью и начал организовывать и записывать различные операции доступа к файлам следующим образом.
(PS: Хоть я и знаю, что технические статьи слишком длинные и мало кто их терпеливо читает, скорость выдержки и лайков снизится, а профита не будет, но все же хочу записать некоторые заметки в процессе своей обучения.Или кому-то может быть проще!)
Рекомендуемое чтение:пост с записью литкода!
Предварительный просмотр метода
● Встроенные методы Python
метод модуля numpy
метод модуля ОС
Метод модуля csv
Встроенные методы Python
Встроенные методы python могут фактически выполнять необходимые нам задачи доступа к файлам без использования каких-либо внешних библиотек.Здесь мы в основном представляем использование нескольких встроенных методов python и, наконец, приводим реальный случай для демонстрации:
-
метод open()
file object = open(file_name [, access_mode][, buffering])
Смысл этого метода в том, чтобы открыть файл по заданному режиму, значение каждого параметра следующее:
имя файла:Переменная file_name — это строковое значение, содержащее имя файла, к которому вы хотите получить доступ.
режим_доступа:access_mode определяет режим, в котором файл открывается: только чтение, запись, добавление и т. д. См. полный список ниже для всех возможных значений. Этот параметр является необязательным, а режим доступа к файлу по умолчанию — только для чтения (r). Общие режимы доступа к файлам показаны на рисунке ниже (из сети)
buffering: Если значение буферизации установлено на 0, регистрации не будет. Если значение буферизации равно 1, строки регистрируются при доступе к файлу. Если значение буферизации установлено на целое число больше 1, это указывает, что это размер буфера области регистра. Если он принимает отрицательное значение, размер буфера области регистров является системным по умолчанию.
-
метод закрытия()
fileObject.close()
Метод close() объекта File сбрасывает всю незаписанную информацию в буфер и закрывает файл, после чего дальнейшая запись невозможна. Когда ссылка на файловый объект переназначается другому файлу, Python закрывает предыдущий файл. Хорошей практикой является закрытие файлов с помощью метода close().
-
метод записи()
fileObject.write(string)
Метод write() может записать любую строку в открытый файл. Важно отметить, что строки Python могут быть двоичными данными, а не только литералами. Метод write() не добавляет новую строку ('\n') в конец строки; передаваемый параметр — это содержимое, которое будет записано в открытый файл.
-
метод чтения()
fileObject.read([count])
Метод read() читает строку из открытого файла. Важно отметить, что строки Python могут быть двоичными данными, а не только литералами. Переданный параметр — это количество байтов, которое нужно прочитать из открытого файла. Метод начинает чтение с начала файла, и если count не передан, он пытается прочитать как можно больше, возможно, до конца файла.
-
Пример анализа
В общем, друзьям рекомендуется использовать метод записи with...as..., который будет автоматически закрываться после выполнения блока кода, что позволяет не только упростить программу, но и избежать ненужных ошибок, вызванных невнимательностью или другими причинами. причины.Следующее Приведите фактический случай.
#先用open方法打开(不存在则创建)一个文件, #write方法写入内容,这里with写法不用手动close #注意这里是模式‘a',意味着写入内容不覆盖已有内容 with open('test.txt','a') as file_test: file_test.write('小詹是个美男子!\n') file_test.write('请关注公众号【小詹学python】!\n')
#注意利用read方法读取内容,模式要设置为可读模式 #read()方法不带参数,表示默认读取最长内容 with open('test.txt','r') as file_test: str = file_test.read() print(str)
Результат вывода будет иметь дополнительный файл test.txt в каталоге, и все содержимое будет выведено после чтения.На следующем рисунке показан результат выполнения три раза, что указывает на то, что режим «а» не будет перезаписывать существующее содержимое ( главное сказано трижды!)
методы модуля numpy
Здесь в основном представлены два общих метода модуля numpy для сохранения и чтения данных.
np.loadtxt(filename, dtype=int, delimiter=' ')
np.savetxt(filename, a, fmt="%d", delimiter=",")
Среди них имя файла — это имя файла, который нужно сохранить или прочитать, a — это содержимое, к которому нужно получить доступ, а разделитель — это разделитель. Это очень просто использовать, код выглядит следующим образом:
import numpy as np
a=np.arange(0,10,0.5).reshape(4,-1)
#改为保存为整数,以逗号分隔
np.savetxt("a.txt",a,fmt="%d",delimiter=",")
#load时也要指定为逗号分隔
b = np.loadtxt("a.txt",delimiter=",")
print('b=\n',b)
В результате его работы создается файл с именем «a.txt», массив сохраняется, а результат распечатывается и считывается, как показано на следующем рисунке:
метод модуля ОС
Модуль os в python является мощным и предоставляет методы для многих операций с файлами. Ниже перечислены несколько часто используемых методов.
-
os.open()
os.open(file, flags[, mode]);
Среди них значения параметров:
file-- файл для открытия
flags-- Этот параметр может быть следующими опциями, разделенными символом "|":
os.O_RDONLY:открыть только для чтения
os.O_WRONLY:открыть только для записи
os.O_RDWR :открыть для чтения и записи
os.O_NONBLOCK:Открыть без блокировки
os.O_APPEND:открыть как добавить
os.O_CREAT:Создать и открыть новый файл
os.O_TRUNC:Откройте файл и обрежьте его до нулевой длины (должны быть права на запись)
os.O_EXCL:Если указанный файл существует, вернуть ошибку
os.O_SHLOCK:Автоматически получать общие блокировки
os.O_EXLOCK:Автоматически приобретать независимые блокировки
os.O_DIRECT:Устранение или уменьшение эффектов кэширования
os.O_FSYNC :синхронная запись
-
os.O_NOFOLLOW:Не переходите по программным ссылкам
-
os.rename(current_name,new_name)способ изменить имя файла
-
os.remove(filename)метод используется для удаления указанного файла
-
os.mkdir('newdir')Метод используется для создания одноуровневого каталога, и если каталог уже существует, будет выдано исключение.
-
os.chdir('newdir')метод используется для изменения текущего рабочего каталога
-
os.getcwd()способ получить текущий рабочий каталог
-
os.write(fd,str)Запишите содержимое в указанный файл, обратите внимание, что str должен быть преобразован в byte
Здесь обратите внимание на пример написания содержимого, обратите внимание, что str нужно преобразовать в byte, иначе будет сообщено об ошибке (требуется байтоподобный объект, а не 'str')!
import os
# # 打开文件
fd = os.open("f1.txt",os.O_RDWR|os.O_CREAT)
# # 写入字符串
line = "this is xiaozhan"
b = str.encode(line)
os.write(fd,b)
# #直接写str报错:a bytes-like object is required, not ‘str’
os.close(fd)
#以可读模式打开
fd = os.open("f1.txt",os.O_RDWR)
ret = os.read(fd,16)
print(ret)
os.close(fd)
print('finish close')
# os.remove('f1.txt')
Результаты приведены ниже:
Метод модуля csv
Как и в предыдущих методах, в основном есть две части для чтения и записи. В основном полагайтесь на методы csv.reader(), csv.writer() и writerow(). Подобно предыдущим, здесь основное использование объясняется непосредственно в коде.
import csv
with open('l.csv', 'w',newline='') as csvfile:
#csv.writer()方法创建
eWriter = csv.writer(csvfile)
#用writerow()方法逐行写入
eWriter.writerow(['ID', '名字', '粉丝数量'])
eWriter.writerow(['xiaoxiaozhantongxue','小詹学python',15000])
eWriter.writerow(['xiaoxiaozhantongxue','小詹学python',15000])
eWriter.writerow(['xiaoxiaozhantongxue','小詹学python',15000])
#打开文件,用with打开可以不用去特意关闭file了,python3不支持file()打开文件,只能用open()
with open('l.csv','r') as csvfile:
#读取csv文件,返回的是迭代类型
read = csv.reader(csvfile)
for i in read:
print(i)
Результат работы следующий:
Выше приведено содержание этой подборки, на которую вам удобно ссылаться и надеюсь, она будет полезна всем читателям! Статья слишком длинная, пожалуйста, прочитайте ее с терпением, я должен поставить вам большой палец вверх и отправить вам один. Наконец не забудьте нажать 💗 О!
Рекомендовано в прошлом
Серия Python - дни домашнего рабства в Пекине~
Отец сказал | Я не люблю это есть, ты должен съесть это!
Нажмите, чтобы прочитать исходный текст, чтобы просмотреть предыдущие записи регистрации!
Добро пожаловать, чтобы отсканировать код и следовать, и получайте удовольствие, учась и играя с Сяо Чжанем ~