鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[扩展阅读] os、os.path 模块中关于文件、目录常用的函数使用方法

    [复制链接]
发表于 2021-2-24 20:58:44 | 显示全部楼层
来了来了!,继续加油冲冲冲!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-4 17:01:14 | 显示全部楼层
好强大,OS模块系统学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-11 23:14:22 | 显示全部楼层
上来就抄到本地的学习记录中,慢慢看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-26 11:51:13 | 显示全部楼层
kuangkuang 发表于 2014-4-6 19:48
为什么用os.path模块中函数时,不需要事先导入模块吗?

属于内置模块吧,import时候已经导入了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-28 17:12:36 | 显示全部楼层
牛啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-28 18:00:33 | 显示全部楼层
收藏了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-16 18:32:36 | 显示全部楼层
0.import os
current_content=os.getcwd()
content_file=os.listdir()
py = 0
docx = 0
txt = 0
wjj = 0
png = 0
a=[]
for i in content_file:
    b=os.path.splitext(current_content+i)
    a.append(b)
for i in a:
    if i[1] == '.py':
        py +=1
    elif i[1] == '.docx':
        docx +=1
    elif i[1] == '.txt':
        txt +=1
    elif i[1] == '.png':
        png +=1
    elif i[1] == '':
        wjj +=1
print('该文件夹下共有类型为【.py】的文件%d个'%py)
print('该文件夹下共有类型为【.png】的文件%d个'%png)
print('该文件夹下共有类型为【.docx】的文件%d个'%docx)
print('该文件夹下共有类型为【.txt】的文件%d个'%txt)
print('该文件夹下共有类型为【文件夹】的文件%d个'%wjj)


1.import os
content = os.listdir()
for i in content:
    print(i,'【%d】'%os.path.getsize(i))


2以后就没有思路了,感觉越来越吃力了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-17 11:09:00 | 显示全部楼层
import os.path
os.path.getsize
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-22 21:21:28 | 显示全部楼层
谢谢老师
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-30 15:59:22 | 显示全部楼层
真强大
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-13 15:59:35 | 显示全部楼层
学到这一节啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-27 20:29:14 | 显示全部楼层
"""
import easygui as eg
import random
sum=3
x=random.randint(1,11)
y=eg.integerbox("不妨猜一下小甲鱼现在心里想的是那个数字(1-10)","数字小游戏")
while 1:
    if y==x:
        eg.msgbox(msg="你真棒猜对啦",ok_button="OK([O])")
        break
    else:
        sum -= 1
        if sum>0:
            eg.msgbox(msg="没关系,下次一定没有问题哒!还有{}次机会".format(sum),ok_button="OK([O])")
            y = eg.integerbox("不妨猜一下小甲鱼现在心里想的是那个数字(1-10)", "数字小游戏")
        else:
            eg.msgbox(msg="没有机会啦,咱们下次再见啦!",ok_button="OK([O])")
            break
"""
"""
import easygui as eg
import t2 as t2
s=0
while 1:
    x=eg.multpasswordbox(msg="【*真实姓名】为必填项\n【*手机号码】为必填项\n【*E-mail】为必填项\n",title="账号中心",\
                         fields=["*用户名","*真实姓名","固定电话","*手机号码","QQ","E-mail"])
    if x[0]!="" and x[1]!="" and x[3]!="" and x[0][0] != " " and x[1][0]!= " " and x[3][0]!= " ":
        break
"""
"""
import easygui as eg
import os
x=eg.fileopenbox(default="*")
with open(x) as f:
    eg.textbox(text=f.read(),title="显示文件内容",msg="文件"+"【"+os.path.split(x)[1]+"】"+"的内容如下")
"""
"""
import easygui as eg
import os
os.chdir("C://Users//Acer//Desktop")
x=eg.fileopenbox(default="*")
with open(x) as f:
    q=f.read()
    t=eg.textbox(text=q,title="显示文件内容",msg="文件"+"【"+os.path.split(x)[1]+"】"+"的内容如下",)
if q!=t:
    save=eg.buttonbox(msg="检测到文件内容发生改变",title="警告",choices=["覆盖保存","放弃保存","另存为..."])
    if save=="覆盖保存":
        with open(x,"w") as f:
            f.write(t)
    elif save == "另存为...":
        pp = eg.filesavebox(default=x)
        if ".txt" not in pp:
            pp=pp+".txt"
        with open(pp,"w") as o:
            o.write(t)
"""

# import easygui as eg
# import os
# py=0;v=0;cpp=0;c=0;pas=0;asm=0;
# t=eg.diropenbox()
# x=list(os.walk(t))
# for i in x:
#     for j in i[2]:
#         if os.path.splitext(j)[1]==".py" or os.path.splitext(j)[1]==".c" or os.path.splitext(j)[1]==".cpp" \
#                 or os.path.splitext(j)[1]==".pas" or os.path.splitext(j)[1]==".asm":
#             try:
#                 with open(i[0]+"//"+j,encoding="utf-8") as f:
#                     for n in f:
#                         if n!="\n":
#                             if os.path.splitext(j)[1]==".py":
#                                 py+=1
#                             elif os.path.splitext(j)[1]==".c":
#                                 c+=1
#                             elif os.path.splitext(j)[1]==".cpp":
#                                 cpp+=1
#                             elif os.path.splitext(j)[1]==".pas":
#                                 pas+=1
#                             elif os.path.splitext(j)[1]==".asm":
#                                 asm+=1
#             except UnicodeDecodeError:
#                 try:
#                     print(i[0]+"//"+j+"\n使用utf-8解不开,尝试用gbk")
#                     with open(i[0]+"//"+j,encoding="gbk") as f:
#                         for n in f:
#                             if n!="\n":
#                                 if os.path.splitext(j)[1] == ".py":
#                                     py += 1
#                                 elif os.path.splitext(j)[1] == ".c":
#                                     c += 1
#                                 elif os.path.splitext(j)[1] == ".cpp":
#                                     cpp += 1
#                                 elif os.path.splitext(j)[1] == ".pas":
#                                     pas += 1
#                                 elif os.path.splitext(j)[1] == ".asm":
#                                     asm += 1
#                     print("还可以,幸亏解开了,不然我要骂娘了"+"\n")
#                 except UnicodeDecodeError:
#                     print("太tm难读了,不读了!下一个!"+"\n")
#                     continue
# sum=py+cpp+c+pas+asm
# if sum<=10**5:
#     bfz=sum/10**3
#     dsh=10**5-sum
#     eg.textbox(text="【py】敲了{}行\n【c】敲了{}行\n【cpp】敲了{}行\n【pas】敲了{}行\n【asm】敲了{}行\n一共敲了{}行".format(py,c,cpp,pas,asm,sum),\
#            msg="你离微软招聘程序员要求代码量还差{:f}%,您还需要打出{}行有效代码,请继续加油!".format(bfz,dsh),title="统计结果")
# else:
#     bfz=(sum-10**5)/10**3
#     dsh=sum-10**5
#     eg.textbox(text="【py】敲了{}行\n【c】敲了{}行\n【cpp】敲了{}行\n【pas】敲了{}行\n【asm】敲了{}行\n一共敲了{}行".format(py, c, cpp, pas, asm,sum), \
#                msg="你超过了微软招聘程序员要求代码量的{:f}%,您超过出了{}行有效代码,您是大佬大!!!".format(bfz, dsh), title="统计结果")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-22 08:50:30 | 显示全部楼层
无条件支持楼主!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-15 22:54:24 | 显示全部楼层
学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-16 12:35:58 | 显示全部楼层
记录一下, 经过多次测试, 在Windows环境下(其他环境还没测试过), os.removedirs() 这个函数在递归删除空目录树的时候, 如果你打开了相应路径的文件夹窗口并停留, 然后再执行这个函数, os.removedirs()并不会将整个目录树删除, 我猜应该是开着该文件路径窗口时python的权限不够, 所以无法将整个路径全部递归删除, 需要确保你并没有在浏览当前目录, os.removedirs()才会完成全部递归。        ------python版本 3.10.6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-30 16:58:18 | 显示全部楼层
python救我
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-7 14:59:02 | 显示全部楼层
赶紧打开一个IDLE试一试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-18 14:50:39 | 显示全部楼层
问答题答案:

收藏

动动手答案:


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-3 21:33:33 | 显示全部楼层
感谢小甲鱼的分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-11 13:54:27 | 显示全部楼层
+1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 04:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表