|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
零基础入门学习Python 的第30课后第一题,想到有两种方法。
第一种方法如下,运行成功。
import os
import os.path
a = 0
b = 0
c = 0
d = 0
e = 0
for each in os.listdir(r'C:\Python'):
(name, form) = os.path.splitext(each)
if form == '.txt':
a += 1
if form == '.png':
b += 1
if form == '.py':
c += 1
if form == '.docx':
d += 1
if form == '':
e += 1
print('该文件夹下共有类型为【.txt】的文件' + str(a) + '个')
print('该文件夹下共有类型为【.png】的文件' + str(b) + '个')
print('该文件夹下共有类型为【.py】的文件' + str(c) + '个')
print('该文件夹下共有类型为【.docx】的文件' + str(d) + '个')
print('该文件夹下共有类型为【文件夹】的文件' + str(e) + '个')
第二种方法受第29课后习题的启发,在文件名和文件类型分割时,稍微改动了一下,就运行不成功,自己想了半天也没想明白,求大神帮忙,代码如下:
import os
import os.path
a = 0
b = 0
c = 0
d = 0
e = 0
for each in os.listdir(r'C:\Python'):
(name, form) = each.split('.',1)
if form == 'txt':
a += 1
if form == 'png':
b += 1
if form == 'py':
c += 1
if form == 'docx':
d += 1
if form == '':
e += 1
print('该文件夹下共有类型为【.txt】的文件' + str(a) + '个')
print('该文件夹下共有类型为【.png】的文件' + str(b) + '个')
print('该文件夹下共有类型为【.py】的文件' + str(c) + '个')
print('该文件夹下共有类型为【.docx】的文件' + str(d) + '个')
print('该文件夹下共有类型为【文件夹】的文件' + str(e) + '个')
总是报错
Traceback (most recent call last):
File "C:/Users/AndyL/AppData/Local/Programs/Python/Python36/Python.30_1_2.py", line 11, in <module>
(name, form) = each.split('.',1)
ValueError: not enough values to unpack (expected 2, got 1)
https://stackoverflow.com/questions/10391963/valueerror-need-more-than-1-value-to-unpack-python
你的 (name, form) = each.split('.',1)这句有问题,当each是个文件夹的时候,你split只能得到一个变量,却想赋给两个变量,就出现这种情况了。解决办法是你可以判断len(each.split('.',1)) == 1或者2进行下一步统计(split返回的是一个list)
|
|