循环遍历目录下的 excel 个文件路径,并将它们传递给 Python 中的数据操作函数
Loop over excel files' paths under a directory and pass them to data manipulation function in Python
我需要通过 data_check.py
中的 DataCheck
函数检查目录 /Users/x/Documents/test/
下的 excel 个文件,这样我就可以进行 数据操作个excel个文件,data_check.py
的代码结构如下:
import pandas as pd
def DataCheck(filePath):
df = pd.read_excel(filePath)
try:
df = df.dropna(subset=['building', 'floor', 'room'], how = 'all')
...
...
...
df.to_excel(writer, 'Sheet1', index = False)
if __name__ == '__main__':
status = True
while status:
rawPath = input(r"")
filePath = rawPath.strip('\"')
if filePath.strip() == "":
status = False
DataCheck(filePath)
为了在一个目录下循环所有 excel 个文件的路径,我使用:
import os
directory = '/Users/x/Documents/test/'
for filename in os.listdir(directory):
if filename.endswith(".xlsx") or filename.endswith(".xls"):
print(os.path.join(directory, filename))
else:
pass
输出:
/Users/x/Documents/test/test 3.xlsx
/Users/x/Documents/test/test 2.xlsx
/Users/x/Documents/test/test 4.xlsx
/Users/x/Documents/test/test.xlsx
但我不知道如何将上面的代码组合在一起,将 excel 文件的路径传递给 DataCheck(filePath)
。
感谢您的提前帮助。
使用名称调用函数而不是打印它们:
import os
directory = '/Users/x/Documents/test/'
for filename in os.listdir(directory):
if filename.endswith(".xlsx") or filename.endswith(".xls"):
fullname = os.path.join(directory, filename)
DataCheck(fullname)
我需要通过 data_check.py
中的 DataCheck
函数检查目录 /Users/x/Documents/test/
下的 excel 个文件,这样我就可以进行 数据操作个excel个文件,data_check.py
的代码结构如下:
import pandas as pd
def DataCheck(filePath):
df = pd.read_excel(filePath)
try:
df = df.dropna(subset=['building', 'floor', 'room'], how = 'all')
...
...
...
df.to_excel(writer, 'Sheet1', index = False)
if __name__ == '__main__':
status = True
while status:
rawPath = input(r"")
filePath = rawPath.strip('\"')
if filePath.strip() == "":
status = False
DataCheck(filePath)
为了在一个目录下循环所有 excel 个文件的路径,我使用:
import os
directory = '/Users/x/Documents/test/'
for filename in os.listdir(directory):
if filename.endswith(".xlsx") or filename.endswith(".xls"):
print(os.path.join(directory, filename))
else:
pass
输出:
/Users/x/Documents/test/test 3.xlsx
/Users/x/Documents/test/test 2.xlsx
/Users/x/Documents/test/test 4.xlsx
/Users/x/Documents/test/test.xlsx
但我不知道如何将上面的代码组合在一起,将 excel 文件的路径传递给 DataCheck(filePath)
。
感谢您的提前帮助。
使用名称调用函数而不是打印它们:
import os
directory = '/Users/x/Documents/test/'
for filename in os.listdir(directory):
if filename.endswith(".xlsx") or filename.endswith(".xls"):
fullname = os.path.join(directory, filename)
DataCheck(fullname)