目录
4. 找出某个目录下所有的文件,并在每个文件中写入“gloryroad”
5. 如果某个目录下文件名包含txt后缀名,则把文件后面追加写一行“被我找到了!”
9. 使用程序建立一个多级的目录,在每个目录下,新建一个和目录名字一样的txt文件
12.输入源文件所在路径和目标目录路径,然后实现文件拷贝功能
14.遍历指定目录下的所有文件,找出其中占用空间最大的前3个文件
15.过滤py源码中的#注释,另存为文件result.py,并执行result.py,断言是否执行成功
16.文件访问,提示输入数字 N 和文件 F, 然后显示文件 F 的前 N 行.
17.从命令行接受1个路径如:c:\a\b\c\1.py, 实现1个函数创建目录a\b\c,创建文件1.py,实现1个函数删除已创建的目录及文件
18.有一个ip.txt,里面每行是一个ip,实现一个函数,ping 每个ip的结果,把结果记录存到ping.txt中,格式为 ip:0或ip:1 ,0代表ping成功,1代表ping失败
19.实现DOS命令执行功能,接受输入命令并执行,然后把执行结果和返回码打印到屏幕
一、文件操作练习题
1.同时读写文件
fp = open("p6-1-file.txt","w+", encoding="utf-8")
content = ["文件操作\t练习题1\n"]
for i in range(5):
content.append("测试行" + str(i) +"\n")
fp.writelines(content)
fp.seek(0,0)
lines = fp.read()
fp.close()
print(lines)
2.创建一个空文件
fp=open("p6-2-file.txt","w+")
fp.write("")
fp.seek(0,0)
print(fp.read())
fp.close()
3.读取文件的前两行
fp=open("p6-3-file.txt","r")
result = []
for i in range(2):
result.append(fp.readline())
print("前两行文件内容是:",result)
fp.close()
4.读取文件的奇数行
fp = open("p6-4-file.txt","r",encoding="utf-8")
line_no = 1
odd_content = []
while 1:
line = fp.readline()
if line:
if line_no % 2==1:
odd_content.append(line)
line_no += 1
else:
break
print("文件奇数行内容:", odd_content)
fp.close()
5.在文件中写入一个列表的内容
fp = open("p6-5-file.txt","w+")
content = ["hello\n","This is a test file!\n","\r\n","测\t试\n文\t件\r","\n"]
fp.writelines(content)
fp.seek(0,0)
print(fp.read())
fp.close()
6.在文件中的0、2、4位置写入当前的文件位置偏移量
fp=open("p6-6-file.txt","r+")
print("写入位置偏移量前的文件内容:",fp.read())
off=fp.seek(0,0)
fp.write(str(off))
off = str(fp.seek(2,0))
fp.write(off)
off = str(fp.seek(4,0))
fp.write(off)
fp.seek(0,0)
print("写入位置偏移量后的文件内容:",fp.read())
fp.close()
7.with写法读取文件内容
with open("p6-7-file.txt",encoding="utf-8") as fp:
print(fp.read())
8.统计一个文件中单词个数
文件内容:
glory road ,wu lao shi
file,haha
women, man, love
with open("p6-8-file.txt","w+") as fp:
fp.write("glory road ,wu lao shi\nfile,haha\nwomen, man, love")
fp.seek(0,0)
content = fp.read()
content = content.replace(","," ")
print(content)
l = content.split()
print("文件中一共有%d个单词:%s" % (len(l),l))
9.将一个文件的所有单词倒序写入文件中
import string
fp = open("p6-9-before-file.txt","r",encoding="utf-8")
fp1 = open("p6-9-after-file.txt","w+",encoding="utf-8")
lines = fp.readlines()
result = []
tmp = ""
# 将文件内容倒序
for line in lines: # 遍历得到文件的每一行内容
if line.strip():# 如果不是空行
l_len =len(line)
for i in range(l_len): # 遍历每一行的内容
if line[i] not in string.ascii_letters: # 如果不是字母
if tmp: # 如果tmp有内容
result.append(tmp[::-1]) # 先把tmp单词倒序后,加到result中
tmp = "" # 然后清空tmp
result.append(line[i]) # 把非字母的部分,如空格 \n 中文 特殊符号等,直接加入result中
else: # 如果是字母
tmp += line[i] # 保存单词
if i == l_len - 1 and tmp != "": # 处理文件末尾是单词,但单词后面没有其他任何内容的情况
result.append(tmp[::-1])
else: # 若是空行\n,就直接加到结果集中
result.append(line)
fp.close()
fp1.write("".join(result))
fp1.seek(0,0)
print("倒序后的文件内容:",fp1.read())
fp1.close()
"""before文件内容如下:
tseN gge 储蓄金
sgnivas1, yenom tpek ni evreser
积蓄、贮备金
noD't yrrow tuoba eht boj uoy tsol. eW evah a elttil tsen gge ot evil no litnu uoy dnif rehtona.
ba测 测试 edc
"""
二、课后综合练习题
1. 基础题:
检验给出的路径是否是一个文件:
检验给出的路径是否是一个目录:
判断是否是绝对路径:
检验给出的路径是否真地存:
>>> import os.path
>>> os.path.isfile(r"F:\课后练习题\a.py")
True
>>> os.path.isfile(r"F:\课后练习题")
False
>>>
>>> os.path.isdir(r"F:\课后练习题\a.py")
False
>>> os.path.isdir(r"F:\课后练习题")
True
>>> os.path.isabs(r"F:\test\test.py")
True
>>> os.path.exists(r"F:\test\test.py")
False
>>> os.path.isabs(r"F:\课后练习题\a.py")
True
>>> os.path.exists(r"F:\课后练习题\a.py")
True
>>> os.path.isabs(r"a.py")
False
>>> os.path.exists(r"a.py")
True
>>> os.path.isabs(r"test\test1")
False
2. 返回一个路径的目录名和文件名
>>> import os.path
>>> os.path.dirname("F:\\test\\a\\test.txt")
'F:\\test\\a'
>>> os.path.basename("F:\\test\\a\\test.txt")
'test.txt'