python之⽂件的读写和⽂件⽬录以及⽂件夹的操作实现代码
为了安全起见,最好还是给打开的⽂件对象指定⼀个名字,这样在完成操作之后可以迅速关闭⽂件,防⽌⼀些⽆⽤的⽂件对象占⽤内存。举个例⼦,对⽂本⽂件读取:
file_object = open('')
try:
all_the_text = ad( )
finally:
file_object.close( )
Python读写⽂件实际操作的五⼤步骤
⼀、打开⽂件
Python读写⽂件在计算机语⾔中被⼴泛的应⽤,如果你想了解其应⽤的程序,以下的⽂章会给你详细的介绍相关内容,会你在以后的学习的过程中有所帮助,下⾯我们就详细介绍其应⽤程序。
代码如下:
f = open("d:\", "w")
说明:
第⼀个参数是⽂件名称,包括路径;第⼆个参数是打开的模式mode
'r':只读(缺省。如果⽂件不存在,则抛出错误)
'w':只写(如果⽂件不存在,则⾃动创建⽂件)
'a':附加到⽂件末尾
'r+':读写
如果需要以⼆进制⽅式打开⽂件,需要在mode后⾯加上字符"b",⽐如"rb""wb"等
⼆、读取内容
参数size表⽰读取的数量,可以省略。如果省略size参数,则表⽰读取⽂件所有内容。
读取⽂件⼀⾏的内容
读取所有的⾏到数组⾥⾯[line1,line2,...lineN]。在避免将所有⽂件内容加载到内存中,这种⽅法常常使⽤,便于提⾼效率。
三、写⼊⽂件
f.write(string)
将⼀个字符串写⼊⽂件,如果写⼊结束,必须在字符串后⾯加上"\n",然后f.close()关闭⽂件
四、⽂件中的内容定位
读取之后,⽂件指针到达⽂件的末尾,如果再来⼀次f.read()将会发现读取的是空内容,如果想再次读取全部内容,必须将定位指针移动到⽂件开始:f.seek(0)
这个函数的格式如下(单位是bytes):
f.seek(offset, from_what)
from_what表⽰开始读取的位置,offset表⽰从from_what再移动⼀定量的距离,⽐如f.seek(10, 3)表⽰定位到第三个字符并再后移10个字符。
from_what值为0时表⽰⽂件的开始,它也可以省略,缺省是0即⽂件开头。下⾯给出⼀
f = open('/tmp/workfile', 'r+')
f.write('0123456789abcdef')
f.seek(5) # Go to the 6th byte in the file
'5'
f.seek (-3, 2) # Go to the 3rd byte before the end
'd'
五、关闭⽂件释放资源
⽂件操作完毕,⼀定要记得关闭⽂件f.close(),可以释放资源供其他程序使⽤
Python读写⽂件在计算机语⾔中被⼴泛的应⽤,如果你想了解其应⽤的程序,以下的⽂章会给你详细的介绍相关内容,会你在以后的学习的过程中有所帮助,下⾯我们就详细介绍其应⽤程序。
⼀、python中对⽂件、⽂件夹操作时经常⽤到的os模块和shutil模块常⽤⽅法。
1.得到当前⼯作⽬录,即当前Python脚本⼯作的⽬录路径: os.getcwd()
2.返回指定⽬录下的所有⽂件和⽬录名:os.listdir()
3.函数⽤来删除⼀个⽂件:os.remove()
4.删除多个⽬录:os.removedirs(r"c:\python")
5.检验给出的路径是否是⼀个⽂件:os.path.isfile()
6.检验给出的路径是否是⼀个⽬录:os.path.isdir()
7.判断是否是绝对路径:os.path.isabs()
8.检验给出的路径是否真地存:ists()
9.返回⼀个路径的⽬录名和⽂件名:os.path.split()
例⼦:
代码如下:
os.path.split('/home/swaroop/byte/') 结果:('/home/swaroop/byte/code', '')
10.分离扩展名:os.path.splitext()
11.获取路径名:os.path.dirname()
12.获取⽂件名:os.path.basename()
13.运⾏shell命令: os.system()
14.读取和设置环境变量:os.getenv() 与os.putenv()
15.给出当前平台使⽤的⾏终⽌符:os.linesep Windows使⽤'\r\n',Linux使⽤'\n'⽽Mac使⽤'\r'
16.指⽰你正在使⽤的平台:os.name 对于Windows,它是'nt',⽽对于Linux/Unix⽤户,它是'posix'
17.重命名:os.rename(old, new)
18.创建多级⽬录:os.makedirs(r"c:\python\test")
19.创建单个⽬录:os.mkdir("test")
20.获取⽂件属性:os.stat(file)
21.修改⽂件权限与时间戳:os.chmod(file)
22.终⽌当前进程:os.exit()
23.获取⽂件⼤⼩:size(filename)
⼆、⽂件操作⽅法⼤全
1.os.mknod("") 创建空⽂件
2.fp = open("",w) 直接打开⼀个⽂件,如果⽂件不存在则创建⽂件
3.关于open 模式:
复制代码代码如下:
r:以读⽅式打开⽂件,可读取⽂件信息。
w:以写⽅式打开⽂件,可向⽂件写⼊信息。如⽂件存在,则清空该⽂件,再写⼊新内容
a:以追加模式打开⽂件(即⼀打开⽂件,⽂件指针⾃动移到⽂件末尾),如果⽂件不存在则创建
b:以⼆进制模式打开⽂件,⽽不是以⽂本模式。该模式只对Windows或Dos有效,类Unix的⽂件是⽤⼆进制模式进⾏操作的。
r+:以读写模式打开
w+:以读写模式打开 (参见 w )
a+:以读写模式打开 (参见 a )
rb:以⼆进制读模式打开
wb:以⼆进制写模式打开 (参见 w )
ab:以⼆进制追加模式打开 (参见 a )
rb+:以⼆进制读写模式打开 (参见 r+ )
wb+:以⼆进制读写模式打开 (参见 w+ )
ab+:以⼆进制读写模式打开 (参见 a+ )
⽂件对象⽅法
f.close():关闭⽂件,记住⽤open()打开⽂件后⼀定要记得关闭它,否则会占⽤系统的可打开⽂件句柄数。
f.fileno():获得⽂件描述符,是⼀个数字
f.flush():刷新输出缓存
f.isatty():如果⽂件是⼀个交互终端,则返回True,否则返回False。
读出所有⾏,也就是读出整个⽂件的信息。
f.seek(offset[,where]):把⽂件指针移动到相对于where的offset位置。where为0表⽰⽂件开始处,这是默认值;1表⽰当前位置;2表⽰⽂件结尾。
f.write(string):把string字符串写⼊⽂件。
f.writelines(list):把list中的字符串⼀⾏⼀⾏地写⼊⽂件,是连续写⼊⽂件,没有换⾏。
数,size是表⽰读取内容的总长,也就是说可能只读到⽂件的⼀部分。
fp.write(str) #把str写到⽂件中,write()并不会在str后加上⼀个换⾏符
fp.writelines(seq) #把seq的内容全部写到⽂件中(多⾏⼀次性写⼊)。这个函数也只是忠实地写⼊,不会在每⾏后⾯加上任何东西。
fp.close() #关闭⽂件。python会在⼀个⽂件不⽤后⾃动关闭⽂件,不过这⼀功能没有保证,最好还是养成⾃⼰关闭的习惯。如果⼀个⽂件在关闭后还对其进⾏操作会产⽣ValueError
fp.flush() #把缓冲区的内容写⼊硬盘
fp.fileno() #返回⼀个长整型的"⽂件标签"
fp.isatty() #⽂件是否是⼀个终端设备⽂件(unix系统中的)
<() #返回下⼀⾏,并将⽂件操作标记位移到下⼀⾏。把⼀个file⽤于for … in file这样的语句时,就是调⽤next()函数来实现遍历的。
fp.seek(offset[,whence]) #将⽂件打操作标记移到offset的位置。这个offset⼀般是相对于⽂件的开头来计算的,⼀般为正数。但如果提供了whence参数就不⼀定了,whence可以为0表⽰从头开始计算,1表⽰以当前位置为原点计算。2表⽰以⽂件末尾为原点进⾏计算。需要注意,如果⽂件以a或
a+的模式打开,每次进⾏写操作时,⽂件操作标记会⾃动返回到⽂件末尾。
三、⽬录操作⽅法⼤全
1.创建⽬录
os.mkdir("file")
2.复制⽂件:
3.复制⽂件夹:
pytree("olddir","newdir") #olddir和newdir都只能是⽬录,且newdir必须不存在
5.重命名⽂件(⽬录)
6.移动⽂件(⽬录)
7.删除⽂件
8.删除⽬录
<("dir") #空⽬录、有内容的⽬录都可以删
9.转换⽬录
os.chdir("path") #换路径
⽬录操作:
os.mkdir("file") 创建⽬录
复制⽂件:
复制⽂件夹:
重命名⽂件(⽬录)
移动⽂件(⽬录)
删除⽂件
删除⽬录
<("dir") 空⽬录、有内容的⽬录都可以删
转换⽬录
os.chdir("path") 换路径
编程实例:
# -*- coding: utf-8 -*-
import os
import shutil
# ⼀. 路径操作:判断、获取和删除
#1. 得到当前⼯作⽬录,即当前Python脚本⼯作的⽬录路径: os.getcwd()
#print: currentpath: f:\LearnPython
currentpath = os.getcwd()
print "currentpath: ",currentpath
#2. 返回指定⽬录下的所有⽂件和⽬录名:os.listdir()
#print:os.listdir(): ['', 'testRW.py', '', 'cmd.py', 'rwfile.py', 'downloadfile.py', 'date.py', 'time.py', 'datetime.py', 'file.py'] print "os.listdir(): ",os.listdir('f:\LearnPython')
path = "F:\mmmmmmmmm\debug_taobao_200003@taobao_android1.6_3.2.1.apk"
#3. 判断给出的路径是否真地存:ists()
if ists(path):
#删除⼀个⽂件:os.remove()
else:
print path,"not exist"
#4. 删除多个⽬录:os.removedirs(“c:\python”)
#它只能删除空⽬录,如果⽬录⾥⾯有内容将不会被删除
if ists("d:/woqu"):
else:
os.mkdir("d:/woqu")
#5. 判断给出的路径是否是⼀个⽂件:os.path.isfile()
#print: True
print os.path.isfile("D:\")
#6. 判断给出的路径是否是⼀个⽬录:os.path.isdir()
#print: True
print os.path.isdir("D:\hello")
#7. 判断是否是绝对路径:os.path.isabs()
#print: True
print os.path.isabs("D:\hello")
# 判断是否是链接
print os.path.islink('www.baidu')
#8. 返回⼀个路径的⽬录名和⽂件名:os.path.split()
#eg os.path.split('/home/swaroop/byte/') 结果:('/home/swaroop/byte/code', '')
#print: ('D:\\hello', '')
print os.path.split("D:\")
#9. 分离扩展名:os.path.splitext()
#print:('D:\\hello\\json', '.txt')
print os.path.splitext("D:\")
#10. 获取路径名:os.path.dirname()
#print: 'D:\\hello'
print os.path.dirname("D:\")
#11. 获取⽂件名:os.path.basename()
#print: ''
print os.path.basename("D:\")
#13. 指⽰你正在使⽤的平台:os.name 对于Windows,它是'nt',⽽对于Linux/Unix⽤户,它是'posix'
print "os.name: ",os.name
#14. linex 下的命令
if os.name == 'posix':
#读取和设置环境变量:os.getenv() 与os.putenv()
home_path = os.environ['HOME']
home_path = os.getenv('HOME') #读取环境变量
elif os.name == 'nt':
home_path = 'd:'
print 'home_path: ',home_path
#15. 给出当前平台使⽤的⾏终⽌符:os.linesep Windows使⽤'\r\n',Linux使⽤'\n'⽽Mac使⽤'\r'
print(os.linesep)
#16. 应为windows和linux的路径有点点不⼀样,windows是⽤ \\ 来分割的,linux是⽤ / 来分隔,
#⽽⽤os.sep 会⾃动根据系统选择⽤哪个分隔符。
print(os.sep)
#17. 重命名:os.rename(old, new)
#先进⼊⽬录
os.chdir("d:\\hello")
wd()
#18. 再重命名
#19. 创建多级⽬录:os.makedirs(“c:\python\test”)
os.makedirs('d:\h\e\l\l\o')
#20. 创建单个⽬录:os.mkdir(“test”)
os.mkdir('d:\f')
#21. 获取⽂件属性:os.stat(file)
#print: nt.stat_result(st_mode=33206, st_ino=0L, st_dev=0, st_nlink=0, st_uid=0, st_gid=0, st_size=4
97L, st_atime=1346688000L, st_mtime=1346748054L, st_ctime=1346748052L) print os.stat('d:\')
#22. 修改⽂件权限与时间戳:os.chmod(path,mode)
#这⾥有介绍:blog.csdn/wirelessqa/article/details/7974477
#23. 终⽌当前进程:os.exit()
#24. 获取⽂件⼤⼩:size(filename)
print size('d:/')
python中如何将列表写⼊⽂件:
实例:
a = [1,2,3,4,5,6,7,8,9]
tmp = []
for i in range(0,len(a),3):
tmp.append(str(a[i])+","+str(a[i+1])+","+str(a[i+2])+"\n")
file("./a.txt",'w').writelines(tmp)
python 读取txt⽂件到列表中
实例:
假如txt⽂件内容为:aaa,bbb,ccc
ddd,eee,fff
我要读取保存到列表中去,显⽰结果为[[aaa,bbb,ccc],[ddd,eee,fff]]
txtpath="
fp=open(txtpath)
arr=[]
for lines adlines():
place("\n","").split(",")
arr.append(lines)
fp.close()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论