Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中返回,读取多个.xml文件_Python_Python 3.x_Xml_Function_Return - Fatal编程技术网

如何在python中返回,读取多个.xml文件

如何在python中返回,读取多个.xml文件,python,python-3.x,xml,function,return,Python,Python 3.x,Xml,Function,Return,我正在用Python编写一个脚本,它将遍历一个文件夹和子文件夹,只读取包含100多个文件的XML文件。如果我在函数外部硬编码此代码,它将在temp0中读取所有100个XML文件,但是如果我将此代码放在函数内部并使用return,则函数始终只返回一个1文件,我的意思是它只读取一个文件。有人能解释一下为什么“返回”是这样工作的吗?提前谢谢 def raw_input(doc): for root, dirs, packs in doc: for files in packs:

我正在用Python编写一个脚本,它将遍历一个文件夹和子文件夹,只读取包含100多个文件的XML文件。如果我在函数外部硬编码此代码,它将在temp0中读取所有100个XML文件,但是如果我将此代码放在函数内部并使用return,则函数始终只返回一个1文件,我的意思是它只读取一个文件。有人能解释一下为什么“返回”是这样工作的吗?提前谢谢

def raw_input(doc):
    for root, dirs, packs in doc:
        for files in packs:
            if files == 'abc.xml':
                filename = os.path.join(root, files)
                open_file = open(filename, 'r')
                perpX_ = open_file.read()
                # print(perpX_)
                outputX_ = re.compile('<test (.*?)</text>', re.DOTALL | re.IGNORECASE).findall(perpX_)
                temp0 = str("|".join(outputX_))
                #print(temp0)
                return temp0

doc=os.walk('./data/')
raw_input(doc)

temp0 = raw_input(doc)
print(temp0)
def原始输入(doc):
对于根目录、目录、文件包:
对于包中的文件:
如果文件=='abc.xml':
filename=os.path.join(根目录,文件)
open_file=open(文件名'r')
perpX_uu=open_file.read()
#打印(每像素)

outputX_u=re.compile('
return
返回函数结果,因此只要到达
return
,Python就会退出函数,并将
return
旁边表达式的结果作为函数的输出

for
循环中有
return
,这意味着每次迭代都会到达它,但是Python解释器假定
temp0
是函数调用的最终结果,所以它退出

您可以在列表中返回多个值,例如:

def原始输入(doc):
结果=[]#这是将汇总输出的地方
对于根目录、目录、文件包:
对于包中的文件:
如果文件=='abc.xml':
filename=os.path.join(根目录,文件)
open_file=open(文件名'r')
perpX_uu=open_file.read()
#打印(每像素)

outputX_u=re.compile('
return
返回函数结果,因此只要到达
return
,Python就会退出函数,并将
return
旁边表达式的结果作为函数的输出

for
循环中有
return
,这意味着每次迭代都会到达它,但是Python解释器假定
temp0
是函数调用的最终结果,所以它退出

您可以在列表中返回多个值,例如:

def原始输入(doc):
结果=[]#这是将汇总输出的地方
对于根目录、目录、文件包:
对于包中的文件:
如果文件=='abc.xml':
filename=os.path.join(根目录,文件)
open_file=open(文件名'r')
perpX_uu=open_file.read()
#打印(每像素)

outputX_u=re.compile('此方法不起作用,我不想将读取的文件也放入列表中,它应该是字符串类型。@Darshanmahalinggowda,好的,我会编辑它,以便返回一个
str
。@Darshanmahalinggowda,我编辑了第一个返回单个字符串的选项。如果它“不起作用”,然后提供它引发的异常或函数的结果。此方法不起作用,我不想将读取的文件也放入列表中。它应该是字符串类型。@Darshanmahalinggowda,好的,我将对其进行编辑,以便返回一个
str
。@Darshanmahalinggowda,我已编辑了返回单个字符串的第一个选项。如果“不工作”,然后提供它引发的异常或函数的结果