零基础学Phyton机器学习程序园

Python中的IO编程

2019-05-16  本文已影响9人  墨马

1.文件读写

try:
  f = open('/path/t.txt','r')
  print(f.read())
finaly:
  if f:
    f.close()

with  open('/path/t.txt','r') as f:
  print(f.read())

在python中内置了with语句实现文件关闭,是代码更加简介。上述俩种方法会实现相同的功能。

f = ('/path/g.txt','r',encoding='gbk',errors='ignore')

其中encoding表示文件的编码,erroes表示遇到编码错误的处理方法。当然,最简单的方法就是直接忽略。

字符 含义
r 读取文本文件
rb 读取二进制文件
w 写入文本文件
wb 写入二进制文件
a 以追加的方式写入

2.StringIO和BytesIO

StringIO

在内存中读写str

from io import StringIO
f = StringIo()
f.write('hello')
f.write(' ')
f.write('world!')
print(f.getvalue())
#hello world!
from io import StringIO
f = StringIo('hellio\n Hi')
while true:
  s = f.readline() == ' '
  if s == ' ':
    break
  else 
    print(s.strip())
BytesIO

BytelsIO用于操作二进制数据

from io import BytesIO 
f = BytesIO() 
f.write('中文'.encode('utf-8'))
print(f.getvalue())
# b'\xe4\xb8\xad\xe6\x96\x87'
f.read();
# b'\xe4\xb8\xad\xe6\x96\x87'

操作文件和目录

python内置的os模块可以直接调用操作系统提供的接口函数。

import os
os.name
'posix'  #代表Linux,Unix,Mac OS X
'nt'       #Windows
os.uname()
#获取详细的系统信息,Windows系统不支持
环境变量

操作系统中定义的环境变量保存在os.environ中

os.environ

获取某个环境变量值使用os.environ.get('key')

os.environ.get('key'):
#'C:\\Windows'
操作文件和目录
 #查看当前目录的绝对路径
os.path.abspath('.')  
#表示完整的路径
os.path.join('/Users/michael','testdir')
#创建目录
os.mkdir( '/Users/michael','testdir')
#删除目录
os.rmdir( '/Users/michael','testdir')

注意:俩个路径合成一个时使用os.path.join()函数,不要使用简单的字符串拼接
os.path.join()在Linux/Unix/Mac和在windows下返回的结果不一样。

os.path.split( '/Users/michael/file.txt')
#拆分路径,后一部分为最后级别的目录或文件名
os.rename('test.txt','test.py')
#重命名
os.remove('test.py')
#删掉文件

遗憾的是os模块中不存在复制函数,但shutil中提供了copyfile()函数。
用python的特性过滤文件

[x  for x   in  os.listdir('.') if  os.path.isdir(x)]
['.lein','.local','.m2','.npm', '.ssh','.Trash','.vim', 'Applications', 'Deskt op',...]
列出所有的.py文件
[x  for x   in  os.listdir('.') if  os.path.isfile(x)   and os.path.splitext(x)[1]=='. py'] 
['apis.py', 'config.py','models.py','pymonitor.py',‘test_db.py','urls.py','wsg iapp.py']
上一篇 下一篇

猜你喜欢

热点阅读