码迷,mamicode.com
首页 > 编程语言 > 详细

Python:文件操作

时间:2018-04-12 13:38:22      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:ase   对象   isl   isa   cap   指定   二进制   from   函数   

一、文件打开方式

格式:open(file, mode = ‘r‘, buffering = -1, encoding = None, errors = None, newline = None, closefd = True, open = None)

==>一般常用file、mode两个参数;

#file:被打开文件所在地址 + 文件名;若只有文件名,认为是在当前目录下打开文件(正则执行的.py文件所有文件夹);默认位置为当前;

#mode:文件打开的模式;

模式 执行操作
‘r’ 以只读方式打开文件(默认);#若文件不存在,报异常,不新建;
‘w’ 以写入的方式创建新文件;#若文件名存在,将其覆盖;
‘x’ 新建文件;#如果文件存在,引发异常;
‘a’  以写入方式打开文件;#若文件存在,可在文件后追加内容;若文件不存在,新建文件;
‘b’ 以二进制模式打开文件;#如‘rb’、‘wb’、‘ab’、‘xb’等;
‘t’ 以文本模式打开文件(默认);
‘+’ k可读写模式;(添加到其它模式中使用)
‘U’ 通用换行符支持

 

 

 

 

 

 

 

 

 

f = open(test.txt, w)
s = 这小伙真帅
f.write(s)
f.close
f = open(test.txt)
print(type(f))
#输出:<class ‘_io.TextIOWrapper‘>
#_io.TextIOWrapper:是什么意思?
print(list(f))
#输出:[‘这小伙真帅‘]

 二、文件对象的方法

文件对象的方法 执行操作 语法格式
close() 关闭文件; f.close()
read(size = -1)

从文件中读取size个字符(不是字节),若未给定size值或给负值时,

读取剩余的(从文件指针位置)所有字节然后做为字符串返回;

f.read(n):

从指针位置起,读取n个字节

readline() 从文件指针位置开始,读取一整行字符串;#一整行:以换行符 ‘\n’ 来分行; f.read()
write(str) 将字符串写入文件;  #所写入的数据必须是字符串; f.write(‘字符串‘)
writelines(sep) 向文件写入字符串序列sep;#sep是一个返回字符串的可迭代对象,不是字符串本身; f.writelines(字符串的可迭代对象)
seek(offset, from)

移动文件指针;#从offset(0/1/2)处,偏移from个字节;

#0代表文件起始位置;1代表指针当前位置;2代表文件末尾;

#from为具体的正整数;

f.seek(1, size):

#从当前指针位置移动size个字节;

tell() 返回指针当前位置;#结果为正整数,表示指针距离文件起始位置的字节数; f.tell()

 

 

 

 

 

 

 

 

 

 

 

 #文件指针:相当于一个‘书签’,对文件进行引索、读取、写入时,从指针位置开始操作;

#一个字符是1个字节;一个汉字是2个字节;

#文件本身可以看做是一个字符串,读取文件时,返回文件对象,可以被迭代操作,与字符串迭代操作一样;

f = open(test.txt, w)
for i in f:
    print(i)
#输出:这小伙真帅

 

三、python文件系统方法

 1)OS模块中关于文件/目录常的函数

#对于文件系统的访问,Python一般通过OS模块来实现;

#Python是夸平台的语言:同样的源代码在不同的操作系统上执行时,不需要修改;

#OS:系统模块;(Operating System)

#使用OS模块下的方法前,先导入OS模块:import os

 

 OS模块中关于文件/目录常的函数

 

函数名 功能 语法格式
getcwd() 返回当前工作目录;#即当前工作的物理地址 os.getcwd()
chdir(path) 改变工作目录;#path指代需要切换到的目录 os.chdir(path)
listdir(path = ‘.‘)

l列举指定目录中的文件名(包含文件夹的名字),其中文件名带格式(如‘.py‘、‘.txt‘),以[‘str1‘, ‘str2‘]形式返回;

#‘.‘:表示当前工作目录,也是默认值; #‘..‘:表示工作目录的上一层目录;

#path指定具体地址,如(‘E:\pythonwj‘):返回指定地址下的文件名;

os.listdir(path = ‘.‘)
mkdir() 在当前工作目录下,创建单个文件夹(不是文件);#如果文件夹已存在,抛出异常; os.mkdir()
makedirs(path)

在指定目录下,创建多层文件夹;#如果文件夹已存在,抛出异常;

#例1:os.makedirs(r‘.\a\b\c‘):a在当前工作目录下,b在a文件夹下,c在b文件夹下;

#r‘.\a\b\c‘:要加r,表示原始字符串;若在当前工作目录下创建,要加 ‘.\‘ ;

#例2:os.makedirs(r‘E:\pythonwj\a\b\c‘)

os.makedirs(path)

 remove(path) 删除当前工作目录下指定的文件;#不是文件夹   os.remove(path)
rmdir(path)  删除当前工作目录下指定的单层文件夹;#文件下不在有其它文件;  os.rmdir(path) 
removedirs(path) 

删除当前工作目录下指定的多层文件;#连同文件夹下的其它文件夹同时删除;

#os.removedirs(r‘a\b\c‘):删除当前工作目录下的a文件夹,以及a文件夹下的b、c文件夹; 

os.removedirs(path) 
rename() 

重命名当前工作目录下的文件夹或文件;

#os.rename(‘文件名1/文件夹名1‘, ‘文件名2/文件夹名2‘):

==>将当前目录下的文件1/文件夹1,更名为 文件2/文件夹2

 os.rename(name1,name2)
 system()

s使用系统的小工具;

#例:os.system(‘calc‘):打开系统的计算器; 

 os.system(‘小工具代码‘)
 walk(top)

 遍历top参数指定路径下的所有子目录,并将结果返回一个三元组(路径, [包含目录], [包含文件])

#top:需要遍历的顶级目录的路径

 os.walk(top)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 扩展

os.curdir表示当前目录(‘.‘);

os.pardir表示上一级目录(‘..‘);

os.sep表示路径的分隔符,比如Windows系统下为‘\\’,Linux系统下为‘/’;

os.linesep表示当前平台使用的行中支符;(Windows下为‘\r\n’,Linux下为‘\n’)

os.name表示当前使用的操作系统;

import os
print(os.sep)
#输出:\

#walk(top)用法,及与os.path.walk()的区别,参见:Python:os.walk()和os.path.walk()用法

实例:

import os

for i in os.walk(rE:\pythonwj):
    print(i)
#输出:
# (‘E:\\pythonwj‘, [‘Chapter_2‘, ‘Chapter_3‘, ‘Chapter_4‘, ‘Chapter_5‘, ‘Chapter_6‘], [])
# (‘E:\\pythonwj\\Chapter_2‘, [], [‘0_0.py‘, ‘2_1.py‘, ‘2_2.PY‘, ‘2_3.py‘])
# (‘E:\\pythonwj\\Chapter_3‘, [], [‘0-0.py‘, ‘3-1.py‘, ‘3-3-1.py‘, ‘3-3-2.py‘, ‘3-4.py‘, ‘3-5.py‘])
# (‘E:\\pythonwj\\Chapter_4‘, [], [‘0-0.py‘, ‘0.py‘, ‘00.py‘, ‘4-1.py‘, ‘4-2.py‘, ‘4-4.py‘, ‘4-5.py‘, ‘4-6.py‘, ‘record.txt‘, ‘test.txt‘, ‘test_1.txt‘, ‘test_2.txt‘, ‘test_3.txt‘, ‘txt‘test_2.txt‘, ‘test_3.txt‘, ‘txt.py‘])
# (‘E:\\pythonwj\\Chapter_5‘, [], [])
# (‘E:\\pythonwj\\Chapter_6‘, [], [])

 

 二)os.path模块中关于路径常用的函数

os.path模块中关于路径常用的函数
函数名 功能及使用方法
basename(path) 去掉目录路径,单独返回文件名
dirname(path) 去掉文件名,单独返回目录路径;
join(path1[, path2[, ...]]) 将path1和path2各部分组合成一个路径名
split(path)

分割文件名和路径,返回(f_path, f_name)元组;

#如果完全使用目录,它也会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在;

splitext(path) 分离文件名和扩展名,返回(f_name, f_extension)元组;
getsize(file) 返回指定文件的尺寸,单位字节;
getatime(file) 返回指定文件最近访问的时间:浮点型秒数;(可用time模块的gmtime()或者localtime()函数换算)
getctime(file) 返回指定文件的创建时间:浮点型秒数;(可用time模块的gmtime()或者localtime()函数换算)
getmtime(file) 返回指定文件最新的修改时间:浮点型秒数;(可用time模块的gmtime()或者localtime()函数换算)

 

 

 

 

 

 

 

 

 

 

 

 

以下函数返回True或False

函数名 功能与使用方法
exists(path) 判断指定路径(目录或者文件)是否存在
isabs(path) 判断指定路径是否为绝对路径
iadir(path) 判断指定路径是否存在且是一个目录
iafile(path) 判断指定路径是否存在且是一个文件
islink(path) 判断指定路径是否存在且是一个符号链接
ismount(path) 判断指定路径是否存在且是一个挂载符
samefile(path1, path2) 判断path1和path2两个路径是否指向同一个文件

Python:文件操作

标签:ase   对象   isl   isa   cap   指定   二进制   from   函数   

原文地址:https://www.cnblogs.com/volcao/p/8806857.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!