Python 为什么扩展函数逐个字符保存?

Python 为什么扩展函数逐个字符保存?,python,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.

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

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

我不知道该怎么办。如何更正它?

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

将“在数组末尾附加一个值为x的新项。”

will“将iterable中的项追加到数组的末尾。如果iterable是另一个数组,则它必须具有完全相同的类型代码;如果不是,则将引发TypeError。如果iterable不是数组,则它必须是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]]
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]
extend
的一个简单示例是:

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]]
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]

我想你在找
f.append
f.extend
extends
f
提供了iterable,因为字符串是iterable,其中的1长度字符串是iterable的元素,所以函数用字符扩展
f
。@Sukritkalla是的right@Shombol-shagol如果确实需要
.extend
您可以使用
.extend([data])
,这将首先在列表中包装
数据。@Alexei是的,我想要那个。