鱼C论坛

 找回密码
 立即注册
查看: 2857|回复: 10

python关于文件系统的问题

[复制链接]
发表于 2017-2-16 12:01:19 | 显示全部楼层 |阅读模式
2鱼币
import os
all_files = os.listdir('E:\\python专用test')
dict1 = dict()
for each_file in all_files:
    if os.path.isfile(each_file):
        size = os.path.getsize(each_file)
        dict1[each_file] = size
for each in dict1.items():
    print('%s【%dBytes】' % (each[0],each[1]))
      

题目要求算出目录下的各个文件大小,我这个代码跟小甲鱼的差不多,但是为什么运行后dict1是一个空的字典。{}

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

使用道具 举报

发表于 2017-2-16 13:40:34 | 显示全部楼层
你这个目录有没有文件???(是文件不是文件夹)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-16 15:01:44 | 显示全部楼层
WylLy 发表于 2017-2-16 13:40
你这个目录有没有文件???(是文件不是文件夹)

有的,我专门创建了一个文件夹,里面新建了几个各种类型的文件。
QQ图片20170216145938.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-16 18:19:57 | 显示全部楼层
os.path.isfile(each_file)要包含路径,即os.path.isfile('E:\\python专用test\\'+each_file),否则会在你工作的目录寻找,只能返回false
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-16 22:04:18 | 显示全部楼层
小小王python 发表于 2017-2-16 18:19
os.path.isfile(each_file)要包含路径,即os.path.isfile('E:\\python专用test\\'+each_file),否则会在你工 ...

可是我在上一行不是已经说each_file 在all_files里面了吗,而all_files在我的那个路径里,这样还是没用吗。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-17 05:38:10 | 显示全部楼层
先chang DIR到pythontest专用目录下, 再执行你上面的程序.....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-17 05:58:39 | 显示全部楼层
如果叫我写一个, 我会这样写,,,没学过PYTHON。。。


111.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-17 06:01:58 | 显示全部楼层
写一个好像挺复杂的, 如果目录下又有目录。。。。。
递归。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-17 09:50:11 | 显示全部楼层
喜欢散步 发表于 2017-2-17 06:01
写一个好像挺复杂的, 如果目录下又有目录。。。。。
递归。。。

这是C语言吗   看不懂啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-17 09:54:15 | 显示全部楼层
喜欢散步 发表于 2017-2-17 05:38
先chang DIR到pythontest专用目录下, 再执行你上面的程序.....

啊哈 ,搞定了  谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-19 18:58:55 | 显示全部楼层
import os
os.chdir('E:\\python专用test')
all_files = os.listdir()
dict1 = dict()
for each_file in all_files:
    if os.path.isfile(each_file):
        size = os.path.getsize(each_file)
        dict1[each_file] = size
for each in dict1.items():
    print('%s【%dBytes】' % (each[0],each[1]))
      
像目录类问题,建议先切换工作目录在做。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-6 18:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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