python 中文件输入输出及os模块对文件系统的操作
整理了一下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中获取当前路径【os模块】
本机windows,文件目录F:\python\ClStudyDemo\osTest.py os.path.realpath(_file_)——返回真实路径 os.path.split()——返回路径 ...
- Python文件系统功能:os模块
Python文件系统功能:os模块 1.os模块方法分类 (1)目录: chdir() 改变工作目录 chroot() 设定当前进程的根目录 listdir() 列出指定目录下的所有文件名 mkdir ...
- python中文件的复制
python中文件的复制 python的os模块有很多文件目录相关的函数,但没有提供直接复制文件的函数,当然可以通过边都边写的方式复制文件.想要直接复制文件可以通过shutil模块 shutil模块是 ...
- Python(七)之OS模块
文件系统功能:os模块 python编程时,经常和文件.目录打交道,这是就离不了os模块.os模块包含普遍的操作系统功能,与具体的平台无关.以下列举常用的命令: 目录: os.mkdir('/tmp/ ...
- 浅谈python中文件和文件夹的相关操作
文件操作 文件的打开与关闭 打开文件 使用open(文件名,访问方式)函数,可以打开一个已存在的文件,或者创建一个新的文件. 示例如下: f = open('test.txt') # 访问方式可以省略 ...
- Python之路-Python中文件和异常
一.文件的操作 open函数 在python中,使用open函数,打开一个已经存在的文件,或者新建一个新文件. 函数语法 open(name[, mode[, buffering[,encoding] ...
- python中文件变化监控-watchdog
在python中文件监控主要有两个库,一个是pyinotify ( https://github.com/seb-m/pyinotify/wiki ),一个是watchdog(http://pytho ...
- Python学习总结13:os模块
os模块包含普遍的操作系统功能,与具体的平台无关.常用于处理文件和目录这些我们日常手动需要做的操作. 1. os模块函数汇总 1) os.name():判断现在正在实用的平台,Windows 返回 ‘ ...
- python中文件操作的六种模式及对文件某一行进行修改的方法
一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...
随机推荐
- 2019年微服务5大趋势,你pick哪个?
2018年对于微服务来说是非常重要的一年,这一年Service Mesh开始崭露头角,解决服务间复杂的通信问题,这一年很多国内互联网公司已经有了较为成熟的微服务实践案例,网易云主办的微服务实践沙龙中也 ...
- 项目Alpha冲刺(团队2/10)
项目Alpha冲刺(团队2/10) 团队名称: 云打印 作业要求: 项目Alpha冲刺(团队) 作业目标: 完成项目Alpha版本 团队队员 队员学号 队员姓名 个人博客地址 备注 221600412 ...
- flask源码解析之上下文
引入 对于flask而言,其请求过程与django有着截然不同的流程.在django中是将请求一步步封装最终传入视图函数的参数中,但是在flask中,视图函数中并没有请求参数,而是将请求通过上下文机制 ...
- Android 从浏览器启动应用
核心逻辑为AndroidMainfest.xml里面的指定Activity里增加配置: <intent-filter> <data android:scheme="***& ...
- jQuery应用实例2:表格隔行换色
这里是用JS实现的:http://www.cnblogs.com/xuyiqing/p/8376312.html 接下来利用上一篇提到的选择器利用jQuery实现: 发现原来多行代码这里只需要两行: ...
- [Swift]键盘遮挡控件
键盘遮挡控件: super.viewDidLoad(){ // Do any additional setup after loading the view, typically from a nib ...
- Spring Boot读取配置的 5 种方式
读取application文件 在application.yml或者properties文件中添加: info.address=USA info.company=Spring info.degree= ...
- 09-部署配置kubedns插件
安装和配置 kubedns 插件 官方的yaml文件在:kubernetes/cluster/addons/dns. 该插件直接使用kubernetes部署,官方的配置文件中包含以下镜像: gcr.i ...
- druid的关键参数+数据库连接池运行原理
minEvictableIdleTimeMillis :连接保持空闲而不被驱逐的最长存活时间.(默认30分钟) Destory线程中如果检测到当前连接的最后活跃时间和当前时间的差值大于minEvi ...
- 【xsy2303】呀 dp
题目大意:你需要构造一个长度为$n$的排列$A$,使得里面包含有子序列$B$(子序列$B$为一个给定的$1$到$m$的排列),且对于每个$i$,有$A[A[i]]=i$,问有多少种方案方案. 数据范围 ...