为什么扩展功能按字符保存?

时间:2014-04-27 16:05:44

标签: python

我知道这是一个非常简单的问题,但我无法找到答案。我的代码是:

f = []
for (dirpath, dirnames, filenames) in walk(opts.sourcedirectory):
    for name in filenames:
        fullsourcefilename = os.path.join(opts.sourcedirectory, name)
        print '\n'+fullsourcefilename
        f.extend(fullsourcefilename)
        break
    print "it is finished"
    for fileo in f:
       print '\n'+fileo
    exit()

首次打印( fullsourcefilename )是正常的,显示文件的完整路径,但第二次有一些输出如下:

d
e
x
.
h
t
m
l

我不知道如何处理它。我该如何纠正?

1 个答案:

答案 0 :(得分:0)

尝试将f.extend(fullsourcefilename)更改为f.append(fullsourcefilename)

append(x)将"将值为x的新项目附加到数组的末尾。"

extend(iterable)将"将项目从iterable追加到数组的末尾。如果iterable是另一个数组,它必须具有完全相同的类型代码;如果没有,将引发TypeError。如果iterable不是数组,则它必须是可迭代的,并且其元素必须是要附加到数组的正确类型。"

append的一个简单示例是:

initial_list = [1, 2, 3]
initial_list.append(4)      # initial_list is now [1, 2, 3, 4]
initial_list.append([5, 6]) # initial_list is now [1, 2, 3, 4, [5, 6]]

extend的一个简单示例是:

initial_list = [1, 2, 3]
initial_list.extend(4)      # TypeError: 'int' object is not iterable
initial_list.extend([4, 5]) # initial_list is now [1, 2, 3, 4, 5]
initial_list.extend([6])    #initial_list is now [1, 2, 3, 4, 5, 6]