python 中文件输入输出及os模块对文件系统的操作方法


Posted in Python onAugust 27, 2018

整理了一下python 中文件的输入输出及主要介绍一些os模块中对文件系统的操作。

文件输入输出

1、内建函数open(file_name,文件打开模式,通用换行符支持),打开文件返回文件对象。

2、对打开文件进行读取时,readline()与readlines()的区别在于是否一次性的读取所有的内容,并将每行的信息作为列表中的一个子项。

例如:文件test.txt中

  1,3,4
  2,35,6

分别用readline与readlines对其进行读取

r=file_object.readline();
#结果为1,3,4
r=file_object.readlines();
#结果为['1,3,4\n', '2,35,6']

3、文件迭代

使用迭代器的file.next()用于读取文件的下一行。相比for循环,更复杂,一般采用 for循环直接迭代。

4、文件移动

seek(off,whence=0)可以在文件中移动文件指针到不同的位置,,从文件中移动off个操作标记(文件指针),正往结束方向移动,负往开始方向移动。如果设定了whence参数,就以whence设定的起始位为准,0代表从头开始,1代表当前位置,2代表文件最末尾位置。
tell()可以展示 我们的移动过程,展示我们的当前位置

5、os模块

6、文件写入f.write();writelines()接受一个字符串列表作为参数

需要手动输入换行符\n;

fobj=open('test','w');#直接在指定路径下打开test1 ,如果没有则直接生成,但若存在,则出错;
fobj.write('foo\n');
fobj.write('bar\n');
fobj.close();
#结果为
#foo
#bar
import os;
file_object=open(r'E:\Python\iostream_test\test.txt','r+');
aline=raw_input("Enter a line ('.'to quit):");
if aline !=".":
  file_object.write('%s%s' % (aline,os.linesep));
#在文件test.txt中写入一条字符串结果为txt 文件中的一个内容

标准文件

一般程序一执行,就可以访问3个标准文件,分别是标准输入(一般是键盘)、标准输出(到显示器的缓冲输出)和标准错误(到屏幕的非缓冲输出),这里的缓冲、非缓冲是指open()的三个参数。

文件系统

对文件系统的访问大多通过python的os模块实现。该模块是python访问操作系统功能的主要接口。

os除了对进程和进程运行环境进行管理外,os模块还负责处理大部分的文件系统操作,包括删除/重命名文件,遍历目录树,已经管理文件访问权限等。

另一个os.path 模块可以完成针对路径名的操作,它提供函数 完成管理和操作文件路径中的各个部分,获取文件或者子目录信息,文件路径查询等操作。

针对os path的操作,操作对象E:\Python\iostream_test文件及其下的test.txt文件

os.path.exists(),检测指定路径的文件或者目录是否存在。

import os;
for tempdir in ('/test.txt',r'E:\Python\iostream_test\test.txt'):
 if os.path.exists(tempdir):
   print 'yes';
   break;
else:
  print 'no temp directory available';
  tempdir=' ';
#结果为yes,
# 若in中改为('/test.txt',r'D:\Python\iostream_test\test.txt'),则结果为no temp directory available
os.path.isdir(),检测指定了路径是否存在且为一个目录,只能是目录,否则报错。
import os;
for tempdir in ('/test.txt',r'E:\Python\iostream_test\test.txt'):
 #in中检测的是文件,而非目录,所以未输出yes
 if os.path.isdir(tempdir):
   print 'yes';
   break;
else:
  print 'no temp directory available';
  tempdir=' ';
# 输出no temp directory available
import os;
for tempdir in ('/test.txt',r'D:\Python\iostream_test\test.txt'):
#指定路径在D盘,因而不存在
 if os.path.isdir(tempdir):
   print 'yes';
   break;
else:
  print 'no temp directory available';
  tempdir=' ';
import os;
for tempdir in ('/test.txt',r'E:\Python\iostream_test'):
 if os.path.isdir(tempdir):
   print 'yes';
   break;
else:
  print 'no temp directory available';
  tempdir=' ';
#输出的是yes

同理可得os.path.isfile()只可检测指定路径是否存在且为一个文件

以下针对os中某些进行练习,针对文件的操作,因先检测是否存在指定路径,再对该路径或者路径中的文件做操作。更多的练习可以看read.md

import os;
for tempdir in ('/tmp',r'E:\Python\iostream_test'):
 if os.path.isdir(tempdir):#检测指定路径是否存在且为一个目录,并赋给tempdir
   print 'yes';
   break;
else:
  print 'no temp directory available';
  tempdir=' ';
if tempdir:
  os.chdir(tempdir); #改变当前工作路径
  cwd=os.getcwd(); #获取当前工作路径;
  print 'current temporany directory is :';
  print cwd;
  print os.listdir(cwd);
  print 'creating example directory';
  os.mkdir('example'); #在当前目录下新建一个新的文件
  os.chdir('example'); #改变目录到example的文件下
  cwd=os.getcwd();#获取example的文件路径
  print 'new working directory:'
  print cwd;
  print ' original directory listing :'
  print os.listdir(cwd);#列出(example)指定路径下的文件
  os.chdir(tempdir);
  cwd=os.getcwd(); 
  print os.listdir(cwd);#列出(tempdir)指定路径下的文件
# 结果为:
# current temporany directory is :
# E:\Python\iostream_test
# ['pspathex.py', 'read.md', 'read.py', 'test.txt']
# creating example directory
# new working directory:
# E:\Python\iostream_test\example
# original directory listing :
# []
# ['example', 'pspathex.py', 'read.md', 'read.py', 'test.txt']
os.path.join()方法将分离的各部分组合成一个路径名
 path=os.path.join(cwd,os.listdir(cwd)[0]);
 print ' full file pathname:'
 print path;
 #结果为E:\Python\iostream_test\example\filetest.txt
os.path.split(path)方法将组合路径分成(路径名,文件名)
path=os.path.join(cwd,os.listdir(cwd)[0]);
print os.path.split(path);#(pathname,basename)
#结果为('E:\\Python\\iostream_test\\example', 'filetest.txt')
os.path.splitext(os.path.basename(path))方法将文件分成(文件名,文件扩展名)
path=os.path.join(cwd,os.listdir(cwd)[0]);
print os.path.splitext(os.path.basename(path));#(filename,extension)
#结果为('filetest', '.txt')

相关模块

永久存储模块,永久存储数据:pickle 、marshal模块、DBM风格模块、shelve模块

总结

以上所述是小编给大家介绍的python 中文件输入输出及os模块对文件系统的操作方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python实现多线程下载文件的代码实例
Jun 01 Python
python+pyqt实现右下角弹出框
Oct 26 Python
pip matplotlib报错equired packages can not be built解决
Jan 06 Python
简单实现python画圆功能
Jan 25 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
Apr 02 Python
python找出一个列表中相同元素的多个索引实例
Jun 11 Python
python简单区块链模拟详解
Jul 03 Python
python类中super() 的使用解析
Dec 19 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
Jan 20 Python
Python转换itertools.chain对象为数组的方法
Feb 07 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
Mar 14 Python
使用Python将Exception异常错误堆栈信息写入日志文件
Apr 08 Python
python中cPickle类使用方法详解
Aug 27 #Python
python散点图实例之随机漫步
Aug 27 #Python
python3.5绘制随机漫步图
Aug 27 #Python
Python反射和内置方法重写操作详解
Aug 27 #Python
Python使用matplotlib绘制随机漫步图
Aug 27 #Python
Python面向对象之继承和组合用法实例分析
Aug 27 #Python
Python干货:分享Python绘制六种可视化图表
Aug 27 #Python
You might like
php中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
PHP实现微信红包金额拆分试玩的算法示例
2018/04/07 PHP
php实现表单提交上传文件功能
2018/05/28 PHP
Jquery 学习笔记(一)
2009/10/13 Javascript
滚动图片效果 jquery实现回旋滚动效果
2013/01/08 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
2015/02/23 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
jquery使用ul模拟select实现表单美化的方法
2015/08/18 Javascript
javascript DIV实现跟随鼠标移动
2020/03/19 Javascript
vue绑定设置属性的多种方式(5)
2017/08/16 Javascript
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
记录一篇关于redux-saga的基本使用过程
2018/08/18 Javascript
详解小程序输入框闪烁及重影BUG解决方案
2018/08/31 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
2019/03/01 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
Python线程详解
2015/06/24 Python
win与linux系统中python requests 安装
2016/12/04 Python
python实现对任意大小图片均匀切割的示例
2018/12/05 Python
Python使用Selenium爬取淘宝异步加载的数据方法
2018/12/17 Python
Python逐行读取文件中内容的简单方法
2019/02/26 Python
详解用python写一个抽奖程序
2019/05/10 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
2019/12/02 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
物流专业大学生求职信范文
2013/10/28 职场文书
数控技术专业毕业自荐书范文
2014/02/05 职场文书
民族团结先进个人事迹材料
2014/06/02 职场文书
化工工艺设计求职信
2014/06/25 职场文书
公司委托书格式
2014/08/01 职场文书
2015新学期开学寄语
2015/02/26 职场文书
湘江北去观后感
2015/06/15 职场文书
HTML基础详解(下)
2021/10/16 HTML / CSS
zabbix自定义监控nginx状态实现过程
2021/11/01 Servers