- 外文名
- open
- 类 别
- 程序函数
- 作 用
- 打开和创建文件
- 中文名
- open函数
- 系 统
- LINUX
- 应 用
- PB程序,C语言
-
OpenVINO之一:OpenVINO概述
2019-04-14 18:46:24OpenVINO之一:OpenVINO概述OpenVINO系列:
OpenVINO之一:OpenVINO概述
OpenVINO之二:Windows环境下OpenVINO安装与配置
OpenVINO之三:Linux环境下OpenVINO安装与配置OpenVINO是英特尔基于自身现有的硬件平台开发的一种可以加快高性能计算机视觉和深度学习视觉应用开发速度工具套件,支持各种英特尔平台的硬件加速器上进行深度学习,并且允许直接异构执行。 支持在Windows与Linux系统,Python/C++语言。
主要特点:
- 在Intel平台上提升计算机视觉相关深度学习性能达19倍以上
- 解除CNN-based的网络在边缘设备的性能瓶颈
- 对OpenCV,OpenXV*视觉库的传统API实现加速与优化
- 基于通用API接口在CPU、GPU、FPGA等设备上运行加上
OpenVINO工具包(ToolKit)主要包括两个核心组件,模型优化器(Model Optimizer)和(Model Optimizer)。
模型优化器(Model Optimizer)
模型优化器(Model Optimizer)将给定的模型转化为标准的 Intermediate Representation (IR) ,并对模型优化。
模型优化器支持的深度学习框架:- ONNX
- TensorFlow
- Caffe
- MXNet
- Kaldi
推断引擎(Inference Engine)
推断引擎(Inference Engine)支持硬件指令集层面的深度学习模型加速运行,同时对传统的OpenCV图像处理库也进行了指令集优化,有显著的性能与速度提升。
支持的硬件设备:- CPU
- GPU
- FPGA
- VPU
参考资料:
1 OpenVINO™ toolkit Documentation
2 Install Intel® Distribution of OpenVINO™ toolkit for Windows* 10
3 Install Intel® Distribution of OpenVINO™ toolkit for Linux*
4 Introduction to Intel® Deep Learning Deployment Toolkit -
python 使用 with open() as 读写文件
2018-08-24 16:06:45要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符: >>> f = open('E:\python\python\test.txt', 'r') 标示符'r'表示读,这样,我们就成功地打开了一个...读文件:
要以读文件的模式打开一个文件对象,使用Python内置的
open()
函数,传入文件名和标示符:>>> f = open('E:\python\python\test.txt', 'r')
标示符'r'表示读,这样,我们就成功地打开了一个文件。
如果文件不存在,
open()
函数就会抛出一个IOError
的错误,并且给出错误码和详细的信息告诉你文件不存在:f=open('E:\python\python\notfound.txt', 'r') Traceback (most recent call last): File "<stdin>", line 1, in <module> FileNotFoundError: [Errno 2] No such file or directory: 'E:\python\python\notfound.txt'
如果文件打开成功,接下来,调用
read()
方法可以一次读取文件的全部内容,Python把内容读到内存,用一个str
对象表示:>>> f.read() 'Hello, python!'
最后一步是调用
close()
方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的:>>> f.close()
由于文件读写时都有可能产生
IOError
,一旦出错,后面的f.close()
就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try ... finally
来实现:try: f = open('/path/', 'r') print(f.read()) finally: if f: f.close()
每次都这么写实在太繁琐,所以,Python引入了
with
语句来自动帮我们调用close()
方法:with open('/path/to/file', 'r') as f: print(f.read())
这和前面的
try ... finally
是一样的,但是代码更佳简洁,并且不必调用f.close()
方法。调用
read()
会一次性读取文件的全部内容,如果文件有20G,内存就爆了,所以,要保险起见,可以反复调用read(size)
方法,每次最多读取size个字节的内容。另外,调用readline()
可以每次读取一行内容,调用readlines()
一次读取所有内容并按行返回list
。因此,要根据需要决定怎么调用。如果文件很小,
read()
一次性读取最方便;如果不能确定文件大小,反复调用read(size)
比较保险;如果是配置文件,调用readlines()
最方便:for line in f.readlines(): print(line.strip()) # 把末尾的'\n'删掉
写文件
写文件和读文件是一样的,唯一区别是调用
open()
函数时,传入标识符'w'
或者'wb'
表示写文本文件或写二进制文件:>>> f = open('E:\python\python\test.txt', 'w') >>> f.write('Hello, python!') >>> f.close()
可以反复调用
write()
来写入文件,但是务必要调用f.close()
来关闭文件。当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()
方法时,操作系统才保证把没有写入的数据全部写入磁盘。忘记调用close()
的后果是数据可能只写了一部分到磁盘,剩下的丢失了。所以,还是用with
语句来得保险:with open('E:\python\python\test.txt', 'w') as f: f.write('Hello, python!')
要写入特定编码的文本文件,请给
open()
函数传入encoding
参数,将字符串自动转换成指定编码字符编码
要读取非UTF-8编码的文本文件,需要给
open()
函数传入encoding
参数,例如,读取GBK编码的文件:>>> f = open('E:\python\python\gbk.txt', 'r', encoding='gbk') >>> f.read() '测试'
遇到有些编码不规范的文件,你可能会遇到
UnicodeDecodeError
,因为在文本文件中可能夹杂了一些非法编码的字符。遇到这种情况,open()
函数还接收一个errors
参数,表示如果遇到编码错误后如何处理。最简单的方式是直接忽略:>>> f = open('E:\python\python\gbk.txt', 'r', encoding='gbk', errors='ignore')
二进制文件
前面讲的默认都是读取文本文件,并且是UTF-8编码的文本文件。要读取二进制文件,比如图片、视频等等,用
'rb'
模式打开文件即可:>>> f = open('E:\python\python\test.jpg', 'rb') >>> f.read() b'\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' # 十六进制表示的字节
总结:以后读写文件尽量使用with open语句,少使用f = open()语句
对于多个文件的读写,可以写成以下两种方式:
1、
with open('C:\Desktop\text.txt','r') as f: with open('C:\Desktop\text1.txt','r') as f1: with open('C:\Desktop\text2.txt','r') as f2 ........ ........ ........
2、
with open(''C:\Desktop\text.txt','r') as f: ........ with open(''C:\Desktop\text1.txt','r') as f1: ........ with open('C:\Desktop\text2.txt','r') as f2: ........
文件的读写方式列表:
File 对象属性:
Reference:
https://www.cnblogs.com/ymjyqsx/p/6554817.html
https://www.cnblogs.com/tianyiliang/p/8192703.html
-
Python3中打开文件的方式(With open)
2018-08-05 19:53:16多个文件的读写操作(2种方法可供参考) with open('/home/xbwang/Desktop/output_measures.txt','r') as f: with open('/home/xbwang/Desktop/output_measures2.txt','r') as f1: with open('/home/xbwang/Desktop/...文章目录
0.背景知识 & IO操作的类型
- python文件读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。
- 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘。
- 读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)
常见的IO操作的类型如下:
type info r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 r+ 打开一个文件用于读写。文件指针将会放在文件的开头。 w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
1.常规方式:读取文件-----open()
step1: 打开
f = open( '/Users/michael/test.txt', 'r' )
- r 表示读取文件,我们就成功地打开了一个文件
- 但是, 如果文件不存在,open()函数就会抛出一个IOError的错误,并且给出错误码和详细的信息告诉你文件不存在,错误情况如下:
f=open('/Users/michael/notfound.txt', 'r') Traceback (most recent call last): File "<stdin>", line 1, in <module> FileNotFoundError: [Errno 2] No such file or directory: '/Users/michael/notfound.txt'
step2: 读取
如果文件打开成功,接下来,调用read()方法可以一次读取文件的全部内容,Python把内容读到内存,用一个str对象表示:
f.read() 'Hello, world!'
step3: 关闭
最后一步是调用close()方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的:
f.close()
由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try … finally来实现:
最终方案:
try: f = open('/path/to/file', 'r') print(f.read()) finally: if f: f.close()
2.推荐方式:读取文件-----With Open
1).读取方式
每次如果都按照如上最终方案去写的话,实在太繁琐。Python引入了with语句来自动帮我们调用close()方法
重点:!!!with 的作用就是自动调用close()方法 !!!with open( '/path/to/file', 'r' ) as f: print( f.read() ) # 这和前面的try ... finally是一样的,但是代码更佳简洁,并且不必调用f.close()方法
f.read(): 读取全部文件内容
f.read(size): 每次读取size个字节内容
f.readline(): 每次读取一行的内容
f.readlines(): 读取全部内容,但结果是个list,每行内容是一个元素
如果遇到超大文件,需要注意:
- 调用read()会一次性读取文件的全部内容,如果文件有10G,内存就爆了。
- 要保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。例如,read(1024) 每次读取1024个字节的数据内容
- 调用readline()可以每次读取一行内容,调用readlines()一次读取所有内容并按行返回list。因此,要根据需要决定怎么调用。
- 如果文件很小,read()一次性读取最方便;如果不能确定文件大小,反复调用read(size)比较保险;如果是配置文件,调用readlines()最方便:
for line in f.readlines(): print( line.strip() ) # 读取文件之后,文字末尾会出现'\n' # strip() 函数中可以把目标内容line里面所有的空格,空行等都删除掉,只剩余文字内容
2).常见的坑
读取静态文件的函数,最好不要写相对路径!!!
(1)如上图,Fold001文件夹下面有个read_file.py文件,这个文件读取hello.txt文件,代码如上图,这样可以正常引用
(2)但如果引用静态文件的函数,被其他函数再次调用的时候。 例如被Fold002里面的函数read.py调用,那么readfile()函数相当于是在read.py所在目录执行的,那么静态文件hello.txt相对于read.py的路径,就不是上图的路径了,否者会运行会报错,如下
3.写入内容----open()函数
写文件和读文件是一样的,唯一区别是调用open()函数时,传入标识符’w’或者’wb’表示写文本文件或写二进制文件:
f = open('/Users/michael/test.txt', 'w') f.write('Hello, world!') f.close()
open函数使用注意地方:
- 你可以反复调用write()来写入文件,但是务必要调用f.close()来关闭文件。
- 当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。
- 只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。忘记调用close()的后果是数据可能只写了一部分到磁盘,剩下的丢失了。所以,还是用with语句来得保险
4.写入内容----- With Open函数
with open('/Users/michael/test.txt', 'w') as f: f.write('Hello, world!')
要写入特定编码的文本文件,请给open()函数传入encoding参数,将字符串自动转换成指定编码字符编码
5.打开非utf-8编码的文件
要读取非UTF-8编码的文本文件,需要给open()函数传入encoding参数,例如,读取GBK编码的文件:
with open('/Users/michael/gbk.txt', 'r', encoding='gbk') as f: f.read()
- 遇到有些编码不规范的文件,你可能会遇到UnicodeDecodeError,因为在文本文件中可能夹杂了一些非法编码的字符。
- open()函数还接收一个errors参数,errors=‘ignore’ 表示遇到编码错误的时候直接忽略
with open('/Users/michael/gbk.txt', 'r', encoding='gbk',errors='ignore') as f: f.read()
6.打开二进制文件
前面讲的默认都是读取文本文件,并且是UTF-8编码的文本文件。要读取二进制文件,比如图片、视频等等,用’rb’模式打开文件即可:
with open('/Users/michael/test.jpg', 'rb') as f: f.read() # b'\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' 十六进制表示的字节
-
OpenVINO系列01_初识OpenVINO
2019-04-15 23:23:001.什么是OpenVINO工具包 OpenVINO™工具包可快速部署模拟人类视觉的应用程序和解决方案。该工具包基于卷积神经网络(CNN),可扩展英特尔®硬件的计算机视觉(CV)工作负载,从而最大限度地提高性能。OpenVINO...一.OpenVINO的由来
通常,由于边缘端的算力和存储比较有限,我们在做模型训练的时候会在云端进行训练。训练完成后我们要在边缘端部署模型,这个时候需要对模型做一些压缩,比如对模型进行剪枝,以及模型量化之类。那么如何确保模型压缩前后的精度不会损失太多,这是我们面临的一个挑战。另外,在云端开发训练模型,在边缘端部署的过程中也会碰到各种各样的问题,比如同样的模型,部署到不同的边缘端,会面临不同软硬件平台兼容性的问题。目前行业中大家都在致力于解决深度学习落地的这些挑战。OpenVINO就是英特尔提出的,用于解决在英特尔的不同硬件平台上部署深度学习的一个统一的解决方案。
二.OpenVINO是什么OpenVINO是用于快速开发应用程序和解决方案的综合工具包,可解决各种任务,包括模拟人类视觉,自动语音识别,自然语言处理,推荐系统等。该工具包基于最新一代的人工神经网络,包括卷积神经网络(CNN),循环和基于注意力的网络,可在英特尔硬件上扩展计算机视觉和非视觉工作负载,从而最大限度地提高性能。它通过从边缘到云的高性能,人工智能和深度学习推理来加速应用程序。
三. OpenVINO支持的平台
- 支持的操作系统:Windows、Linux、Mac os
- 支持的硬件:凌动、酷睿、至强、Movidius计算棒、FPGA等。
四.OpenVINO有什么优势
- 优化模型,提高性能。OpenVINO在模型部署前,首先会对模型进行优化,模型优化器会对模型的拓扑结构进行优化,去掉不需要的层,对相同的运算进行融合、合并以加快运算效率,减少内存拷贝;FP16、INT8量化也可以在保证精度损失很小的前提下减小模型体积,提高模型的性能。
- 开发简单。提供了C、C++和python3种语言编程接口。
- 部署方便。在Intel的不同硬件平台上进行移植部署很便捷。推理引擎对不同的硬件提供统一的接口,底层实现直接调用硬件指令集的加速库,应用程序开发人员不需要关心底层的硬件实现,即可在不同的硬件平台上加速模型推理。
五.OpenVINO工作流程
六.OpenVINO主要核心组件
- Model Optimizer。它是一种跨平台的命令行工具,可将经过训练的神经网络从其源框架转换为与nGraph兼容的开源中间表示(IR),以进行推理操作。Model Optimizer导入在Caffe、TensorFlow、MXNet、Kaldi和ONNX等流行框架中训练的模型,并进行一些优化以在可能的情况下删除多余的图层并进行分组操作,以形成更简单,更快的图形。如果你的神经网络模型包含不在受支持框架的已知层列表中的层,则可以通过使用`自定义图层`来调整转换和优化过程。
- Inference Engine。它管理优化的神经网络模型的加载和编译,对输入数据进行推理操作并输出结果。Inference Engine可以同步或异步执行,其插件体系结构管理在多个Intel设备上执行编译,包括主力CPU以及专用的图形和视频处理平台。
-
SLAM OpenSource minimization
2019-12-14 12:38:03OpenSource minimization Project Language License CERES SOLVER C++ BSD License GTSAM C++ BSD License G2O C++ BSD License + L/GPL3 restriction NLOPT C++ LGPL -
Open3D 绘制几何图形
2021-04-11 16:25:39Open3D 绘制常见几何图形 -
Python-with open() as f的用法
2019-02-01 21:48:15with open(r'filename.txt') as f: data_user=pd.read_csv(f) #文件的读操作 with open('data.txt', 'w') as f: f.write('hello world') #文件的写操作 相关参数: r: 以只读方式打开文件。文件的指针将会放在... -
with open() as f 用法
2019-09-28 18:26:05with open(r'filename.txt') as f: data_user=pd.read_csv(f) #文件的读操作 with open('data.txt', 'w') as f: f.write('hello world') #文件的写操作 相关参数: r: 以只读方式打开文件。文件的指针将会放在... -
【Open3d】使用open3d可视化
2020-03-29 18:54:59# 使用open3d可视化点云 def visualize(pointcloud): from open3d.open3d.geometry import PointCloud from open3d.open3d.utility import Vector3dVector from open3d.open3d.visualization import draw_ge... -
【论文整理】Open Relation Extraction/Open Information Extraction Must Read Paper
2019-11-30 17:23:24Open Information Extraction Survery 2018 COLING A Survey on Open Information Extraction Supervised 2018 NAACL Supervised Open Information Extraction Unsupervised can be defined to pa... -
OpenVINO之二:Windows环境下OpenVINO安装与配置
2019-04-14 18:47:30OpenVINO系列导航: OpenVINO之一:OpenVINO概述 OpenVINO之二:安装与配置 -
Open Folder as PyCharm Project 怎么添加?
2020-08-26 09:37:07很多朋友在使用Jetbrains系列软件的时候,可能都会有一个问题,那就是鼠标右击出现的Open Folder as PyCharm Project,有时候安装的时候没勾选,后期想加,或者是后期感觉没啥用,想删了,怎么操作呢? 先说一下作者... -
Proteus仿真时出现Cannot open‘***\LISA5476.SDF’的错误!
2018-01-02 22:04:52前几个月电脑有点卡,于是重装了系统,装完后想把Proteus软件重新装上,装完后打开之前的一个项目试一下,出现Cannot open‘C:\User\?\AppData\Local\Temp\LISA5476.SDF’的错误,当时也没百度不知道啥原因,就卸载... -
OpenVINO之三:Linux环境下OpenVINO安装与配置
2019-09-13 14:12:13OpenVINO系列: OpenVINO之一:OpenVINO概述 OpenVINO之二:OpenVINO之二:Windows环境下OpenVINO安装与配置 -
opencore黑苹果设置默认启动项\引导项
2020-03-07 20:50:41这是在opencore0.54中加入的新功能,只要把MISC/Security/AllowSetDefault的值设置为true,然后在opencore启动项选择界面,光标移到要设置默认启动项处,按crtl+enter或者ctrl+index即可。 ... -
Python文件操作,with open as追加文本内容实例
2017-07-25 11:12:56with open('/Users/Mr.Long/Desktop/data.txt', 'w') as f: f.write('hello world') 就这样就完成了文件的写操错(此处用with的格式,可以节省很多不必要的麻烦) 读操作同理,只是做一下微小的变化处理而已 with... -
[OpenDrive] OpenDrive学习笔记
2019-09-02 17:17:34OpenDrive 高精地图作为一种专门为无人驾驶服务的地图,在信息的精度和丰富度上都远高于传统地图。 目前市面上提供高精地图的厂商: tomtom、here、百度、高德等,而对应的地图格式也有多种: 基于rndf的地图,... -
OpenvSwitch — Overview
2019-02-11 23:36:53文章目录目录前言虚拟交换机(vSwitch)软件定义网络(SDN)Open vSwitch 简介Open vSwitch 的工作原理Open vSwitch 的架构ovs-dbovsdb-server 的 Manager/SSL Connection创建 Manager Connection创建 SSL Manager ... -
Python文件操作函数os.open、io.open、内置函数open之间的关系
2019-08-05 07:31:29Python提供了多种文件操作方式,这里简单介绍os.open、io.open、内置函数open之间的关系: 一、内置函数open和io.open实际上是同一个函数,后者是前者的别名; 二、os.open与内置函数open的关系 os.open是文件操作... -
如何配置openVPN服务端,让openVPN客户端可以通过互联网连接到openVPN服务端
2016-09-23 05:54:05如何配置openVPN服务端,让openVPN客户端可以通过互联网连接到openVPN服务端 -
OpenSearch 讲解
2019-05-15 18:24:37文章目录什么是OpenSearchOpen Search 和 Elastic Search对比open searchElasticSearch对比数据准备Open Search 的创建我们对Open Search的使用API 分类搜索方式目前在用的产品遇到的问题 什么是OpenSearch 开放搜索... -
PIL.Image.open()与open() python
2019-01-17 15:04:13PIL.Image.open()专接图片路径,用来直接读取该路径指向的图片。要求路径必须指明到哪张图,不能只是所有图所在的文件夹; open()接路径,常附带r、w、a等,表明需要对该路径读取的文件的操作。 ... -
Python open()读取文件 Unicode编码问题
2017-10-12 22:03:57Python open()读取文件 Unicode编码问题 -
OpenAI教程
2018-06-27 11:32:21OpenAI Gym是一款用于研发和比较学习算法的工具包。它与很多数值计算库兼容,比如tensorflow和theano。现在支持的语言主要是python。openai gym 是一个增强学习(reinforcement learning,RL)算法的... -
open()和with open() as的区别
2018-10-11 14:33:42file = open("test.txt","r") for line in file.readlines(): print line file.close() 这样直接打开文件,如果出现异常,如读取过程中文件不存在或异常,则直接出现错误,close方法无法执行... -
OpenEuler简介与安装
2020-11-28 07:16:12OpenEuler是华为推动的一个免费开源的Linux发行平台。这篇文章简单介绍一下OpenEuler的基本信息,并以当前最新的20.09版本为例,并进行一下x86架构下虚拟机下的安装体验。 -
python3codecs.open和open的区别
2018-01-15 10:47:58最早的时候,只有open。你知道的,Python 2的编码多么蛋疼,所以,就有了codecs.open.至于io.open,其实是因为Python 2的open实际上是file模块提供的,而Python 3的open是io模块提供的。然后,Python 2.6引入了这个...