「Python」2020.04.14学习笔记 | 第六章文件目录removedirs、rmdir、listdir、remove+练习

  • 学习测试开发的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
image.png

执行:

PS D:\0grory\day10> python .\delfile.py
PS D:\0grory\day10>

结果:


image.png

老师讲的

算法:

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("..")
    
    
image.png

执行:

PS D:\0grory\day10> python .\tdelfile.py

结果:


image.png

你可能感兴趣的:(「Python」2020.04.14学习笔记 | 第六章文件目录removedirs、rmdir、listdir、remove+练习)