失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python的输入来源包括文件输入_【python】文件的输入和输出

python的输入来源包括文件输入_【python】文件的输入和输出

时间:2024-04-24 05:35:19

相关推荐

python的输入来源包括文件输入_【python】文件的输入和输出

1.os模块

2.os.path 模块

3.实例

1. os模块

对文件系统的访问大多通过python的os模块实现,其中os 模块负责大部分的文件系统操作,包括删除/重命名文件,遍历目

录树,管理文件访问权限等。

2.os.path 模块,os.path完成一些针对路径名的操作,包括管理和操作文件路径名中的各个部分,获取文件或子目录信息,文件路径查询等操作。

3.实例

3.1 实例1:os模块和path模块接口使用

#encoding:utf-8

'''Created on -6-5

@author: Administrator'''

importosif __name__ == "__main__":for tempdir in ('/tmp', r'c:\temp'):ifos.path.isdir(tempdir):break

else:print "no temp directory is available"tempdir= ''

iftempdir:

os.chdir(tempdir)

cwd=os.getcwd()print "***current temporary directory***"

printcwdprint "***creating example directory..."os.mkdir("example")

os.chdir("example")

cwd=os.getcwd()print "***new working directory..."

printcwdprint "***original directory listing:"

printos.listdir(cwd)print "***creating test file"fobj= open("test", "w")

fobj.write("%s%s" % ("line1", os.linesep))

fobj.write("%s%s" % ("line2", os.linesep))

fobj.close()print "***updating directory listing:"

printos.listdir(cwd)print "***renaming test to filetest.txt"os.rename("test", "filetest.txt")print "***updating directory listing:"

printos.listdir(cwd)

path=os.path.join(cwd, os.listdir(cwd)[0])print "***full file pathname:"

printpathprint "***(pathname,basename)="

printos.path.split(path)print "***(filename,extension)="

print "***basename:", os.path.basename(path)printos.path.splitext(os.path.basename(path))print "***displaying file contents:"fobj=open(path)for eachline infobj:printeachline

fobj.close()print "***deleting test file"os.remove(path)print "***updating directory listing:"

printos.listdir(cwd)print "deleting test directory"os.chdir(os.pardir)

os.rmdir("example")print "***Done!"name= raw_input(u"请输入名字:".encode("gbk"))

count=1;for mytuple inos.walk(name, True):print "%s:%s" %(count,mytuple[0])

count=count+1

print "%s:%s" %(count,mytuple[1])

count=count+1

print "%s:%s" %(count,mytuple[2])

count=count+1

3.2 实例2:目录文件深度遍历

"""文件目录深度遍历"""

deflistdir(mydir, myfile):globalfmtglobalfilenum

lists= os.listdir(mydir) #列出目录下的所有文件和目录

for line inlists:

filepath=os.path.join(mydir, line)if os.path.isdir(filepath): #如果filepath是目录,则再列出该目录下的所有文件

myfile.write(fmt + line.decode("gbk") + '\\' + '\n')print fmt + line.decode("gbk") + '\\' + '\n',

filenum= filenum + 1

#格式化输出目录

tmp =fmt

fmt= fmt + 4 * "-"listdir(filepath, myfile)

fmt=tmpelse: #如果filepath是文件,直接列出文件名

myfile.write(fmt + line.decode("gbk") + '\n') #显示中文文件

print fmt + line.decode("gbk") + '\n',

filenum= filenum + 1

if __name__ == '__main__':

mydir= raw_input('please input the path:')

listfile= open('listfile.txt', 'w')

listfile.write(str(mydir).decode("gbk") + '\n')

listdir(str(mydir), listfile)

listfile.write('all the file num is' +str(filenum))

listfile.close()

结果:

E:\KuGou----Beyond -不再犹豫.mp3----Beyond -喜欢你.mp3----Beyond -无尽空虚.mp3----Beyond -海阔天空.mp3----Beyond -谁伴我闯荡.mp3----Beyond、黄家驹 -海阔天空.m4a----Cache\--------3eb439fd4096a2b76ae8c1020f6c4007.kg!----Lyric\--------Beyond - 不再犹豫-2bcba2349cd515bf1110613c9a44acf9.krc--------Beyond - 光辉岁月-4dc283c7ac7bd5d9bf9b72f167d4ec7d.krc--------Beyond - 喜欢你-a48d906b0210cefc2d5d12353d3e7488.krc--------Beyond - 无尽空虚-6ade279c2a7da6ce893e581ff22f7817.krc--------Beyond - 海阔天空-f87ab6af058e9c5864a81a78e9f62967.krc--------吴雨霏 - 今夜烟花灿烂-5810060a70bf1f583f92eb5d541d65e4.krc--------周华健 - 让我欢喜让我忧-71c82c68ebab8ca9f97f460e7e8a58fa.krc----Temp\--------1d4182a7b02d9ea3185ddbbdece48473.kgtemp--------2bcba2349cd515bf1110613c9a44acf9.kgtemp--------4dc283c7ac7bd5d9bf9b72f167d4ec7d.kgtemp----五月天 -我不愿让你一个人.mp3----刘德华 -一起走过的日子.mp3----刘德华 -冰雨.mp3----刘德华 -北国之春.mp3

all the file numis 96

说明:以上结果有删减,主要是输出格式

3.3 实例3: os.walk 目录树

"""文件目录广度遍历"""

def walkdir(mydir,fileinfo,topdown=True):for root, dirs, files inos.walk(mydir, topdown):for name infiles:print(name)

fileinfo.write(name+ '\n')for name indirs:print(os.path.join(name))

fileinfo.write(os.path.join(root,name)+ '\n')if __name__ == '__main__':

mydir= raw_input('please input the path:')

walkfile= open('walkfile.txt', 'w')

walkfile.write(str(mydir).decode("gbk") + '\n')

walkdir(str(mydir), walkfile)

walkfile.close()

说明:

1、raw_input 接收中文路径输入,在windows下需要保证eclipse控制台设置编码为GBK,具体设置为,右键单击需要运行的python文件,选择Run as-----Run configurations

设置Common编码为GBK,否则raw_input 结果为乱码

2. 保存文件路径名到文件中时,需要使用str.encode(“gbk”)的encode方式,同时保证写入文件路径名的文件格式为GBK,否则可能出现中文乱码

3.os.walk()调用的返回结果为一个对象,其中每个元素为一个三元组,三元组分别为(目录,子目录,目录下文件),(子目录,子目录下的子目录,子目录下的文件)……

如果觉得《python的输入来源包括文件输入_【python】文件的输入和输出》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。