Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.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 打开文件夹中的所有excel文件并记录值_Python - Fatal编程技术网

Python 打开文件夹中的所有excel文件并记录值

Python 打开文件夹中的所有excel文件并记录值,python,Python,我正在寻找一个资源来学习这项技能,或一个示例代码,使其工作。 我需要对同一文件夹中的数百个excel文件执行以下操作: 打开excel文件, 从某些单元格中读取文件名和3个值,我将它们称为FName、X和Y, 将这些值以以下格式写入文本文件中的同一新行: FName;X;YZ 然后重复,直到我有一个包含所有这些值的文本文件 我的数据收集部分工作得很好。我的问题是,如果文件名不在工作表中,我不知道如何记录它,我也不知道如何循环遍历文件夹中的所有文件 import openpyxl wb = op

我正在寻找一个资源来学习这项技能,或一个示例代码,使其工作。 我需要对同一文件夹中的数百个excel文件执行以下操作: 打开excel文件, 从某些单元格中读取文件名和3个值,我将它们称为FName、X和Y, 将这些值以以下格式写入文本文件中的同一新行: FName;X;YZ

然后重复,直到我有一个包含所有这些值的文本文件

我的数据收集部分工作得很好。我的问题是,如果文件名不在工作表中,我不知道如何记录它,我也不知道如何循环遍历文件夹中的所有文件

import openpyxl

wb = openpyxl.load_workbook('example.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')

##### Gather values #####
x = sheet['F3'].value
y = sheet['C13'].value
if sheet['A17'].value == 'X':
    z = 'Pass'
else:
    z = 'Fail'

##### Append .txt file #####
f = open('example.txt',"a+") # (a)ppend, (w)rite, (r)ead, + is create
f.write(str(x) + ";")
f.write(str(y) + ";")
f.write(z + ";" + "\n")
f.close()

有人能给我指出正确的方向,让我知道如何对文件夹中的所有excel文件执行此操作吗?

要收集文件夹中的所有文件,请使用python模块glob。在本例中,我们将说您的文件位于桌面上

导入glob 导入操作系统导入操作系统 f=打开'example.txt',a+追加、写入、读取,+是创建 对于glob.globr'C:\Users\Owner\Desktop\*.xlsx中的文件:将其更改为您的目录 wb=openpyxl.load_workbookrf'{file}' sheet=wb。通过名称“Sheet1”获取工作表 filename=os.path.splitfile[1]这是文件名 wo_ext=os.path.splitextfilename[0]这是不带.xlsx的名称 收集价值 x=图纸['F3']。数值 y=工作表['C13']。数值 如果工作表['A17']。值='X': z=‘通过’ 其他: z=‘失败’ f、 writestrx+; f、 writestry+; f、 writez+;+\N wb.close f、 接近
您正在寻找os.walk。这比我预期的要简单得多。当试图运行它时,python在这一行有一个问题:wb=openpyxl.load_workbookrf'{file}。它说这是无效的语法。rf做什么?rf'string'只是指原始和格式。因此,它使其成为原始字符串,并在花括号之间格式化文件。您正在运行哪个版本的python?它在我运行PythonV3.7.4的pc上运行,这很有意义。我通常使用Python2,但我也在3中尝试了这一点,并得到了相同的错误。请尝试将其更改为加载\u workbookr“%s”文件。我对Python2不太熟悉,但这应该可以工作。只需:wb=openpyxl.load_workbookfile如何