- 学习测试开发的Day103,真棒!
- 学习时间为1H25m
- 第十次全天课(上午视频12M-58M)
题2.把一个文件的所有行倒序输出,倒序输出后存到一个新文件中。
补充:是否有换行符
fp1=open("D:\\0grory\\day10\\1.txt","r")
fp2=open("D:\\0grory\\day10\\2.txt","w")
for line in fp1.readlines()[::-1]:
if "\n" in line:
fp2.write(line)
else:
fp2.write(line+"\n")
fp1.close()
fp2.close()
单元测试,代码覆盖率,20%-30%
微软 覆盖率70%
阿里 说要达到100%-但是很艰难
查看当前目录和指定当前目录
>>> import os
>>> os.getcwd()#查看当前目录
'D:\\0grory\\day10'
>>> os.chdir("e:\\")#指定当前目录
>>> os.getcwd()
'e:\\'
>>>
进入上一层目录
>>> os.chdir('D:\\0grory\\day10')
>>> os.chdir("..")
>>> os.getcwd()
'D:\\0grory'
>>> os.chdir(os.pardir)
>>> os.getcwd()
'D:\\'
>>>
创建目录和多层目录
>>> os.chdir('D:\\0grory\\day10')
>>> os.mkdir("光荣之路")
>>> os.makedirs("D:\\0grory\\day10\\test1\\test2")
>>>
os.removedirs(path)
若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依次类推。
代码示例:
#encoding=utf-8
import os
os.removedirs(r'c:\gloryroad\test')
执行结果:
删除gloryroad和test目录成功
os.rmdir(path)
删除单级空目录,若目录不为空则无法删除,会报错;相当Linux中的rmdir
dirname。
代码示例:
#encoding=utf-8
import os
os.rmdir(r'c:\gloryroad')
执行结果:
删除gloryroad目录
删目录-只能删非空目录,目录下无内容
>>> os.rmdir("光荣之路")
删除目录及目录
>>> os.removedirs("D:\\0grory\\day10\\test1\\test2")
os.listdir(path)
列出指定目录下的所有文件和子目录,包括隐藏文件或目录,并以列表形式
返回。
代码示例:
#encoding=utf-8
import os
dirContent = os.listdir(r'c:\users')
print(dirContent)
>>> os.listdir("d:\\")
['$baksd', '$RECYCLE.BIN', '0grory', '360WiFi', 'BaiduNetdiskDownload', 'FastStoneCapture_v92', 'FastStoneCapture_v92.zip', 'navicat premium', 'PD', 'Program Files', 'Program Files (x86)', 'qycache', 'System Volume Information', 'tel.txt', 'wm_pro_14_win', 'work', 'xampp', '工具安装包', '工具类', '整理过的所有照片20181009', '测试开发']
判断一个路径是目录还是文件
>>> import os.path
>>> os.path.isfile("d:\\0grory")
False
>>> os.path.isdir("d:\\0grory")
True
>>>
os.remove(filePath)
删除一个指定的文件,参数filePath表示文件所在的路径。
注意:该方法只能删除文件,不能删除目录。
代码示例:
#encoding=utf-8
import os
os.remove(r'c:\test.txt')
执行结果:
test.txt文件被删除
小练习:把一个文件下所有的文件删除,在所有的目录下,新建一个文件a.txt,里面写一个光荣之路的关键字
自己的代码
import os
import os.path
os.chdir("D:\\0grory\\day10\\1")
listfile=os.listdir()
for l in listfile:
if os.path.isfile("D:\\0grory\\day10\\1"+"\\"+l):
os.remove(l)
for l in listfile:
if os.path.isdir("D:\\0grory\\day10\\1"+"\\"+l):
os.chdir("D:\\0grory\\day10\\1"+"\\"+l)
fp=open("a.txt","w")
fp.write("光荣之路")
fp.close
执行:
PS D:\0grory\day10> python .\delfile.py
PS D:\0grory\day10>
结果:
老师讲的
算法:
1.用os.listdir()找到所有的文件或者目录
2.用if判断是否是文件,哪些是目录
3.如果是文件,直接os。remove来删除文件
注意:使用绝对路径?还是相对路径
4.如果是目录,则chdir进入之,然后open+w来写文件,写入“光荣之路”,关闭文件
老师的代码
import os
import os.path
if os.path.exists("D:\\0grory\\day10\\1"):
os.chdir("D:\\0grory\\day10\\1")
for i in os.listdir("D:\\0grory\\day10\\1"):#os.listdir(".")
if os.path.isfile(i):
os.remove(i) #os.remove("D:\\0grory\\day10\\1\\"+i)
else:
os.chdir(i)
fp=open("a.txt","w",encoding="utf-8")#默认用的gbk
fp.write("光荣之路\n")
fp.close()
os.chdir("..")
执行:
PS D:\0grory\day10> python .\tdelfile.py
结果: