0528 文件操作习题

#11. 查找某个目录下是否存在某个文件名
'''
def isfile_name_exists(path,file_name):
    import os
    import os.path

    for i in os.listdir(path):
        if os.path.isfile(path+"\"+i) and i==file_name:
            return True
        return False


path ="C:\Users\Administrator\Desktop\测试\python相关"
print(isfile_name_exists(path,"0510.py"))
'''

#12. 用系统命令拷贝文件
'''
>>> import shutil
>>> shutil.copy("e:\baidu.txt","e:\123.txt")
'e:\123.txt'
'''


#13.输入源文件所在路径和目标目录路径,然后实现文件拷贝功能
'''
def copy_file(sou_path,tar_file):
    import shutil
    shutil.copy(sou_path+"\"+"1.txt",tar_file+"\"+"22.txt")
    return True

print(copy_file("E:\test\gloryroad1","E:\tupian1"))
'''

#14.遍历某个目录下的所有图片,并在图片名称后面增加_xx
'''
1 遍历目录下所有文件
2 判断文件是否是图片
3 是图片的话切割后缀名
4 拼接改名
'''  
'''
import os
import os.path

for i in os.listdir("e:\tupian1"):
    if os.path.splitext(i)[1] in [".jpg",".png",".jpeg"]:
        print(os.path.splitext(i)[0]+"_xx"+os.path.splitext(i)[1])    
        os.rename("E:\tupian1"+"\"+i,"E:\tupian1"+"\"+os.path.splitext(i)[0]+"_xx"+os.path.splitext(i)[1])
'''



#15、遍历指定目录下的所有文件,找出其中占用空间最大的前3个文件
'''
def max_size_file(dir_path,num):
    import os
    import os.path

    size_dic={}
    for i in os.listdir(dir_path):
        #print(i)
        if os.path.isfile(dir_path+"\"+i):#要用绝对路径
            #print(i)
            size_dic[i]=os.path.getsize(dir_path+"\"+i)
    #print(size_dic)
    return sorted(size_dic.items(),key=lambda i:i[1],reverse=True)[:num]#按照字典的values进行排序


print(max_size_file("e:\tupian",3))
'''


#16、过滤py源码中的#注释,另存为文件result.py,并执行result.py,断言是否执行成功
'''
import os
result =""
with open("e:\0513.py","r",encoding="utf-8") as fp:
    for i in fp.readlines():
        if not (i.strip()).startswith("#"):
            result +=i
with open("e:\result6.py","w",encoding="utf-8") as fp1:
    fp1.write(result)

flag=os.system("python -3 e:\result6.py")#返回0为成功,返回1为失败
if flag==0:
    print("执行成功")
else:
    print("执行失败")
'''

#17、文件访问,提示输入数字 N 和文件 F, 然后显示文件 F 的前 N 行.
'''
1 打开文件
2 判断文件在不在,不在的话直接返回
3 在的话,继续判断输入的行数是否小于等于文件最大行数,大于的话直接返回None
4 小于等于的话,取输入的行数返回
'''
'''
def read_file(file_name,num):
    import os
    with open(file_name,"r",encoding="utf-8") as fp:
        content =fp.readlines()
        if not os.path.exists(file_name):
            return None
        else:
            if num>len(content):
                return None
            else:
                for line in range(num):
                    print(content[line])

print(read_file("e:\123.txt",3))
'''
原文地址:https://www.cnblogs.com/wenm1128/p/10939196.html