标签:列表 方法 get bye size 字符 odi jpg 语句
读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘.
要以读文件模式打开一个文件列表,使用open()
函数,并传入文件名和标识符:
f = open(r‘.1.txt‘,‘r‘)
r
表示引号里面的东西不转义,第二个r
表示读。如果文件成功打开,我们调用read
方法可以一次性读取全部内容:
f = open(r‘.1.txt‘,‘r‘)
f.read()
------------
‘hello,word!‘
最后一步调用close()
方法关闭文件。
f.close()
f.close()
就不会被调用。所有我们使用try.....finally
来实现: try:
f =open(r‘.1.txt‘,‘r‘)
print(f.read())
finally:
if f:
f.close()
每次这么写就太繁琐了,所以,python引出了with
语句来自动调用close()
方法:
with open(r‘.1.txt‘,‘r‘) as f:
print(f.read())
read
会一次性读取文件的全部内容,如果文件有10G,内存就炸了。
size
个字节的内容list
读取二进制文件
>>> f = open(‘/Users/michael/test.jpg‘, ‘rb‘)
>>> f.read()
b‘\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...‘ # 十六进制表示的字节
字符编码
f =open(‘.1.txt‘,‘r‘,encoding = ‘gbk‘,errors=‘ignore‘)
errors
会忽略错误编码字符写文件
f = open(‘.1.txt‘,‘w‘)
f.write(‘hello,word‘)
f.close()
stringIO顾名思义就是在内存中读取str。
from io import StringIO
f = StringIO()
f.write(‘hello‘)
f.write( ‘ ‘)
print(f.getvalue())
要读取StringIO,可以初始化StringIO,然后,像读文件一样读取:
from io import StringIO
f = StringIO(‘Hello\nHi!\nGoodbye‘)
while True:
s = f.readline()
if s == ‘‘:
break
print(s.strip())
BytesIO实现了在内存中读取bytes,我们创建一个BytesIO,然后写入一些bytes
from io import BytesIO
f = BytesIO()
f.write(‘中午‘.encode(‘utf-8‘))
print(f.getvalue())
os的基本功能
import os
os.name
---------
‘nt‘
在操作系统中定义的环境变量,全部保存在os.environ
这个变量中,可以直接查看:
import os
os.environ
# get 获取单个环境的变量
os.environ.get(‘PATH‘)
操作文件和目录的函数一部分放在os模块中,一部分放在了os。path
中
# 查看当前目录的绝对路径
os.path.abspath(‘.‘)
# 在在某个目录下创建一个新目录,首先把新目录的完整路径表示出来
a=os.path.join(‘/Users/michael‘,‘testdir‘)
# 删除一个目录
os.rmdir("a")
# 创建一个目录
os.mkdir("a")
os.path.join()
.这样可以正确处理两个操作系统路径分隔符不同的情况同样,才分路径的时候用os.path.split()
函数
os.path.split(‘/Users/michael\\testdir.txt‘)
(‘/Users/michael‘, ‘testdir.txt‘)
os.path.splitext
可以直接获得文件的扩展名
os.path.splitext(‘/Users/michael\\testdir.txt‘)
(‘/Users/michael\\testdir‘, ‘.txt‘)
标签:列表 方法 get bye size 字符 odi jpg 语句
原文地址:https://www.cnblogs.com/yangaoteng666/p/9274247.html