python取文件列表失败_Python获取目录、文件的注意事项

Python获取指定路径下的子目录和文件有两种方法:

os.listdir(dir)和os.walk(dir),前者列出dir目录下的所有直接子目录和文件的名称(均不包含完整路径),如

>>> os.listdir(r'E:')

['$RECYCLE.BIN', 'Download', 'test.txt', 'data', 'MyDownloads', 'System Volume Information', 'VSPath', 'Youku Files']

>>>

后者,递归地获取dir目录下的所有子目录、文件,采用深度遍历的方式,详见http://www.cnblogs.com/herbert/archive/2013/01/07/2848892.html

更详细的操作目录和文件的方法,如判断是否是文件,参考http://www.cnblogs.com/yuxc/archive/2011/08/01/2124012.html

需要注意的是,使用os.walk()函数内部实际上调用了os.listdir(),另外,dir也是一个Python内建的函数,因此在任何地方都最好不要把dir作为参数变量传入函数(可以换个名字,如_dir等),否则可能会报奇怪的错误。

以下是我遇到的一个错误:

1 importos2 defgetAllDataFiles(directory):3 dirsOrFiles=os.listdir(dir)4 printdirsOrFiles5

6 if __name__=='__main__':7 print os.listdir('E:')8 getAllDataFiles('E:')

第7行可以正确输出,第8行则会报错:TypeError: coercing to Unicode: need string or buffer, builtin_function_or_method found,本来出错的原因应该是不能识别dir变量,但因为python这里把它识别为内建的dir()函数,因此没有报类似"NameError: name 'dir' is not defined"这样的错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以为你提供一些指导,但是最终的代码还是需要你自己去编写。首先,你可以使用Python的os模块来遍历目录。然后,你可以使用os.walk()函数来获取每个子文件夹中的文件数量,并将结果保存在字典中。最后,你可以使用for循环来遍历字典并打印出每个子文件夹中的文件数量。 ### 回答2: 可以使用Python中的os库和os.path库来实现遍历目录文件数量的功能。 首先,需要导入os库和os.path库: ```python import os ``` 然后,定义一个函数来遍历目录,并统计目录中的文件数量: ```python def count_files(directory): count = 0 # 初始化文件数量为0 for root, dirs, files in os.walk(directory): for file in files: count += 1 # 每遍历到一个文件,数量加1 return count ``` 在上述函数中,使用了os.walk()方法来递归遍历目录及其子目录中的文件os.walk()方法返回一个三元组 `(root, dirs, files)`,其中`root`表示目录的路径,`dirs`表示目录中的子目录列表,`files`表示目录中的文件列表。通过遍历`files`列表,可以统计目录中的文件数量。 最后,可以调用该函数,并传入目录路径来获取文件数量: ```python directory = '目录路径' # 替换为你想要统计的目录路径 file_count = count_files(directory) print("目录中的文件数量为:%d" % file_count) ``` 上述代码中,将目录路径替换为你想要统计的目录路径,然后调用`count_files()`函数来获取目录中的文件数量,并通过print语句打印出来。 希望以上回答能对你有所帮助。 ### 回答3: 可以使用Python的os模块和os.path模块编写一个遍历目录文件数量的程序。 可以按照以下步骤来编写程序: 1. 导入相关模块: ```python import os ``` 2. 定义一个函数,用于遍历目录文件的数量: ```python def count_files(directory): count = 0 for root, dirs, files in os.walk(directory): count += len(files) return count ``` 3. 在程序中调用该函数,并传入要遍历的目录路径: ```python directory = "目录路径" file_count = count_files(directory) print("目录下的文件数量为:", file_count) ``` 以上程序会输出指定目录下的文件数量。 注意事项: - 在使用该程序时,需要先安装Python环境,并安装相关的模块。 - 使用时需要将"目录路径"替换为你要遍历的目录路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值