pythonwithopenas
‘壹’ python3 with open()用法
w 是写入模式
r是读取模式
wb 是二进制写入
with open('a.jpg'.'wb')as f: 后面跟一段f.write()
‘贰’ python里的with open(file name) as file obj是什么意思
就是打开一个文件并声明变量file obj 接收打开后的文件对象,同时with语句块会在程序结束时候自动关闭打开的文件句柄,不会造成内存存泄露之后的问题
大概等效于
try:
file_obj = open(file_name)
#with里面你写的代码
except Exception:
raise Exception
finally:
if file_obj :
file_obj.close()
‘叁’ 软件测试中,python 中 open与with open 的区别
open函数
1.open函数: file=open(filename, encoding='utf-8'),open()函数是Python内置的用于对文件的读写操作,返回的是文件的流对象(而不是文件本身,所以使用的方法都是流对象的方法)。使用这个函数时可以指定encoding参数(Python2.7中不支持),因为Python代码在不同的平台环境中使用的默认编码方式不同,有可能会发生编译出错的问题。
2. filename参数:在open中的文件名参数filename中,包含的路径表示虽然可以根据不同的环境使用斜杠和反斜杠,但在Python中表路径时,斜杠都是正确的。
3. 文件操作对象file:流对象file,即open的默认模式下的返回值。使用for循环对对象file进行迭代时,每次迭代都会自动分离出一行(效果相当于对readlines结果的for循环遍历):
with创建临时运行环境
作用:with用于创建一个临时的运行环境,运行环境中的代码执行完后自动安全退出环境。
文件操作:使用open进行文件操作使建议使用with创建运行环境,可以不用close()方法关闭文件,无论在文件使用中遇到什么问题都能安全的退出,即使发生错误,退出运行时环境时也能安全退出文件并给出报错信息。
with open(’/path/to/file’, ‘r’) as f:
print(f.read())
这和前面的try … finally是一样的,但是代码更佳简洁,并且不必调用f.close()方法。
如果想了解跟多相关的执行可以来传智播客软件测试学习
‘肆’ python中使用open需要close关闭,有不用关闭的语法么
有的,
with open('d:\\a.txt','r') as f:
....content = f.read()
这样读完会自动关闭
‘伍’ python中with python中with as 是什么意思刚入门求解释!!!
这个语法是用来代替传统的try...finally语法的。
with EXPRESSION [ as VARIABLE] WITH-BLOCK
基本思想是with所求值的对象必须有一个__enter__()方法,一个__exit__()方法。
紧跟with后面的语句被求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面返回对象的__exit__()方法。
file=open("/tmp/foo.txt")
try:
data=file.read()
finally:
file.close()
使用with...as...的方式替换,修改后的代码是:
withopen("/tmp/foo.txt")asfile:
data=file.read()
#!/usr/bin/envpython
#with_example01.py
classSample:
def__enter__(self):
print"In__enter__()"
return"Foo"
def__exit__(self,type,value,trace):
print"In__exit__()"
defget_sample():
returnSample()
withget_sample()assample:
print"sample:",sample
执行结果为
In__enter__()
sample:Foo
In__exit__()
1. __enter__()方法被执行
2. __enter__()方法返回的值 - 这个例子中是"Foo",赋值给变量'sample'
3. 执行代码块,打印变量"sample"的值为 "Foo"
4. __exit__()方法被调用with真正强大之处是它可以处理异常。可能你已经注意到Sample类的__exit__方法有三个参数- val, type 和 trace。这些参数在异常处理中相当有用。
请采纳!
‘陆’ Python文件读写
常见的读写操作:
Python内置了读写文件的函数,用法和C是兼容的。本节介绍内容大致有:文件的打开/关闭、文件对象、文件的读写等。仅示例介绍 TXT 类型文档的读写,也就是最基础的文件读写,也需要注意编码问题;
open() close() with open(...) as ...
看以下示例就能了解 Python 的 open() 及 close() 函数。这边调用 read()方法可以一次读取文件的全部内容,Python把内容读到内存,用一个str对象表示,具体使用参见下文。
在 E 盘 python_file 文件夹下新建一 a.txt,输入随意,如下:
Python 操作 打开及关闭方式 如下:
注意 open() 之后 一定要 close()。但由于文件读写时都可能产生IOError,为了保证无论是否出错都能正确地关闭文件,我们用 try ... finally 来实现:
python 简化了改写法,即用 with open(...) as ... ; 建议之后文件读写都用该写法:
上面,你肯定注意到了参数 "r";该参数决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
相关参数:
File 对象
file 为一对象,它有一些内置属性,如下
file对象的属性:
read() read(size) readline() readlines()
之前的例子已经接触到了 read() 函数,该函数会会一次性读取文件的全部内容,如果能确保文件的大小,自然可以。但若文件过大,内存就爆了,所以,可以反复调用read(size)方法,每次最多读取size个字节的内容;也可调用 readline() 每次读取一行内容;而调用readlines()可以一次读取所有内容并按行返回list。总之,根据需求来。仅以 txt 文件为例,其他的文件读取需要特殊处理;另外,文件的格式编码方式也需要注意;这边仅介绍读取方法,其他的会出专题来学习。
在D:\python_file 下新建 poet.txt;示例如下,由于一个中文会占多个字节,故read(size) 部分会乱码,如:
write()
写文件和读文件是一样的,唯一区别是调用open()函数时,传入标识符'w'或者'wb'表示写文本文件或写二进制文件;'a' 对应的表示追加等。
如下示例,由于 write.txt 文件不存在,创建该文件并写入:
在上例基础上,继续,该文件被重写:
继续,这次使用追加,会在文件结尾追加:
https://blog.csdn.net/msspark/article/details/86745391
https://www.cnblogs.com/tianyiliang/p/8192703.html
https://www.cnblogs.com/camilla/p/7234657.html
https://blog.csdn.net/songlh1234/article/details/83316468
https://www.php.cn/python-tutorials-412484.html
https://blog.csdn.net/weay/article/details/80946152
https://blog.csdn.net/xc_zhou/article/details/81044836
‘柒’ Python3 with open 怎样处理文件不存在的异常
try:
withopen("path/to/filename.file","r")asf:
pass
#dowithfilehandle
exceptExceptionase:
print(e)
#dowithexception