欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python课程第六章 文件和目录操作习题详解

程序员文章站 2022-06-24 12:58:45
Python课程第六章 文件和目录操作习题详解 练习题1:同时读写文件>>> fp=open("D:\A\A.txt",'w')>>> print fp>>> print type(f ......

Python课程第六章 文件和目录操作习题详解

 

练习题1:同时读写文件
>>> fp=open("D:\A\A.txt",'w')
>>> print fp
<open file 'D:\\A\\A.txt', mode 'w' at 0x00000000021A6150>
>>> print type(fp)
<type 'file'>
>>> print fp
<open file 'D:\\A\\A.txt', mode 'w' at 0x00000000021A6150>
>>> fp.write("glory road is great!")
>>> fp.close()
>>> fp=open("D:\A\A.txt",'r')
>>> print fp.readline()
glory road is great!
>>> fp.close()
>>>
>>> with open("D:\A\A.txt",'r') as f:
... for line in f:
... print line
...
glory road is great!
>>>
练习题2:创建一个空文件
>>> fp=open("d:\\A\B.txt",'w')
练习题3:读取文件的前两行
>>> fp=open("d:\A\A.txt",'r')
>>> twolines=fp.readlines()[0:2]
>>> print twolines
['AAAAAAAAAAAAA\n', 'BBBBBBBBBBBBB\n']
>>> fp.close()
>>>
练习题4:读取文件的奇数行
>>> fp=open("d:\A\A.txt",'r')
>>> oddlines=fp.readlines()[1::2]
>>> print oddlines
['BBBBBBBBBBBBB\n', 'GGGGGGGGGGGGGGGGGGGGGGGG']
>>> fp.close()
练习题5:在文件中写入一个列表的内容
>>> testList=['abcede\n','123\n','this is a test\n','文件操作']
>>> fp=open("d:\A\A.txt",'w')
>>> fp=open("d:\A\A.txt",'w')
>>> fp.writelines(testList)
>>> fp.close()
>>>
练习题6:在文件中的0、2、4位置写入当前的文件位置偏移量

 

练习题7:with写法读取文件内容
>>> with open("d:\\A\\A.txt",'r') as f:
... for line in f:
... print line
...
abcede

 

123

 

this is a test

 

文件操作
>>>
练习题8:统计一个文件中单词个数
文件内容:
glory road ,wu lao shi
file,haha
women, man, love
>>> count=0
>>> with open("d:\\A\\A.txt","r+") as fp:
... for lines in fp.readlines():
... for i in lines.split(','):
... for j in i.split():
... count+=1
...
>>> print count
10
练习题9:将一个文件的所有单词倒序写入文件
glory road ,wu lao shi
file,haha
women, man, love
>>> infp=open("d:\A\A.txt","r")
>>> outfp=open("d:\A\B.txt","w")
>>> text=infp.read()[::-1]
>>> print text
evol ,nam ,nemow
ahah,elif
ihs oal uw, daor yrolg
>>> outfp.write(text)
>>> outfp=open("d:\A\B.txt","r")
>>> print outfp.read()
evol ,nam ,nemow
ahah,elif
ihs oal uw, daor yrolg
>>> infp.close()
>>> outfp.close()
1.基础题:
检验给出的路径是否是一个文件:
>>> import os.path
>>> path="D:\\1"
>>> os.path.isfile(path)
False
>>> import os
>>> filename=r"d:\1\1.txt"
>>> os.path.isfile(filename)
True
>>> os.path.exists(filename)
True
检验给出的路径是否是一个目录:
>>> import os.path
>>> path="D:\\1"
>>> os.path.isdir(path)
True
判断是否是绝对路径:
>>> import os
>>> os.path.isabs("1")
False
>>> os.path.isabs(r"d:\1")
True
>>> print os.path.abspath("1")
C:\Users\Ping\1
>>> print os.path.abspath("1.txt")
C:\Users\Ping\1.txt
>>> print os.path.abspath(r"1.txt")
C:\Users\Ping\1.txt
>>> print os.path.abspath(r"c:\user\ping\1.txt")
c:\user\ping\1.txt
>>> print os.path.abspath(path)
D:\1
检验给出的路径是否真地存在:
>>> import os
>>> import os.path
>>> path=os.getcwd()
>>> path
'C:\\Users\\Ping'
>>> os.path.exists(path)
True
>>> import os.path
>>> path="D:\\1"
>>> path
'D:\\1'
>>> os.path.exists(path)
True
>>>
2.返回一个路径的目录名和文件名
>>> import os
>>> os.path.split("d:\A\A.txt")
('d:\\A', 'A.txt')
3.分离文件名与扩展名
>>> import os
>>> os.path.splitext(r'd:\A\A.txt')
('d:\\A\\A', '.txt')
4.找出某个目录下所有的文件,并在每个文件中写入“gloryroad”
>>> import os
>>> for root,dirs,files in os.walk("d:\A",topdown=False):
... print "root",root
... for file in files:
... filepath=os.path.join(root,file)
... print "filepath",filepath
... with open(filepath,"w") as fp:
... fp.write("gloryroad")
... fp.close()
... for dir in dirs:
... print "dirname",dir
...
root d:\A
filepath d:\A\A.txt
filepath d:\A\B.txt
>>>
5.如果某个目录下文件名包含txt后缀名,则把文件后面追加写一行“被我找到了!”
>>> import chardet
>>> import os
>>> for root,dirs,files in os.walk("d:\A"):
... for file in files:
... filepath=os.path.join(root,file).decode("gbk")
... if os.path.splitext(filepath)[1]=='.txt':
... with open(filepath,"a") as fp:
... fp.write(u"被我找到了\n".encode("gbk"))
... fp.close()
...
>>>
6. 命题练习:
1) 一个目录下只有文件(自己构造),拷贝几个文件(手工完成)
2 )用listdir函数获取所有文件,如果文件的创建时间是今天,那么就在文件里面写上文件的路径、
文件名和文件扩展名
3) 如果不是今天创建(获取文件的创建时间,并转化为时间格式,判断是否今天),请删除
4 )计算一下这个程序的执行耗时
7.删除某个目录下的全部文件
8.统计某个目录下文件数和目录个数
9.删除某个目录下的全部文件(仅限一级目录)
10.使用程序建立一个多级的目录,在每个目录下,新建一个和目录名字一样的txt文件
11. 查找某个目录下是否存在某个文件名
12. 用系统命令拷贝文件
13.输入源文件所在路径和目标目录路径,然后实现文件拷贝功能
14.遍历某个目录下的所有图片,并在图片名称后面增加_xx
15、遍历指定目录下的所有文件,找出其中占用空间最大的前3个文件
16、过滤py源码中的#注释,另存为文件result.py,并执行result.py,断言是否执行成功
17、文件访问,提示输入数字 N 和文件 F, 然后显示文件 F 的前 N 行.
18、从命令行接受1个路径如:c:\a\b\c\1.py, 实现1个函数创建目录a\b\c,创建文件1.py
,实现1个函数删除已创建的目录及文件
19、有一个ip.txt,里面每行是一个ip,实现一个函数,ping 每个ip的结果,把结果记录
存到ping.txt中,格式为ip:0或ip:1 ,0代表ping成功,1代表ping失败
20、实现DOS命令执行功能,接受输入命令并执行,然后把执行结果和返回码打印到屏幕 
21、文件访问
访问一存在多行的文件,实现每隔一秒逐行显示文本内容的程序,每次显示文本文件的 5 
行, 暂停并向用户提示“输入任意字符继续”,按回车键后继续执行,直到文件末尾。
显示文件的格式为:
[当前时间] 一行内容,比如:[2016-07-08 22:21:51] 999370this is test