使用函数来处理文件路径,这样可以使代码更加灵活和易于维护。以下是将文件路径使用函数进行处理的实例:
import os
import pandas as pd
def get_file_path(file_name): #定义一个 get_file_path函数接收一个文件名作为参数
base_dir = 'D:\\EXCEL500\\' #定义一个基础目录 ,方便后期维护
return os.path.join(base_dir, file_name) #使用 os.path.join()函数将基础目录和文件名组合成完整的文件路径并返回 此处要用return 返回文件路径,而不是直接赋值给 file_path 变量
def main():
try:
# 获取文件路径
file_path = get_file_path('BBBB.XLSX') #获取要读取的文件的完整路径
num = pd.read_excel(file_path) #使用 pandas 的 read_excel 函数读取 Excel 文件
print(num)
except FileNotFoundError: #如果文件找不到
print("文件未找到,请检查文件路径")
except Exception as e: #捕获异常并将异常对象存储在变量 e 中
print(f"读取文件时发生错误: {e}")
data = {'年龄': [35, 25, 40]}
new = pd.DataFrame(data)
new_file = pd.concat([num, new], ignore_index=True) #易错点,这里用num 不能用file_path
try:
# 获取新文件的保存路径
new_file_path = get_file_path('new_BBBB.xlsx')
new_file.to_excel(new_file_path, index=False)
except Exception as e:
print(f"保存文件时发生错误: {e}")
if __name__ == "__main__":
main()
代码解释:
def get_file_path(file_name)
函数:- 该函数接收一个文件名作为参数。
base_dir = 'D:\\EXCEL500\\'
:定义一个基础目录。return os.path.join(base_dir, file_name)
:使用os.path.join()
函数将基础目录和文件名组合成完整的文件路径并返回。
def main()
函数:- 首先调用
get_file_path('BBBB.XLSX')
获取要读取的文件的完整路径。 num = pd.read_excel(file_path)
:使用pandas
的read_excel
函数读取 Excel 文件。- 异常处理部分和之前类似,处理文件读取时可能出现的错误。
data = {'年龄': [35, 25, 40]}
和new = pd.DataFrame(data)
:创建并转换数据框。new_file = pd.concat([num, new], ignore_index=True)
:拼接数据框。- 调用
get_file_path('new_BBBB.xlsx')
获取新文件的保存路径。 new_file.to_excel(new_file_path, index=False)
:将拼接后的数据框保存为 Excel 文件,同时使用异常处理来处理文件保存时的错误。- if name == ‘main‘: 这部分代码是 Python 的一个约定写法,它的作用是确保只有当这个模块被直接运行时,w() 函数才会被调用。
- 如果不写这部分代码,当这个模块被导入到其他模块中时,main() 函数也会被自动执行,这可能不是您期望的行为。而且,通过这种方式,可以更好地组织和控制模块的执行逻辑,使得模块既可以作为独立的脚本运行,也可以被其他模块安全地导入和使用。
- 首先调用
使用说明:
- 你可以根据需要修改
get_file_path
函数中的base_dir
变量,以更改文件存储的基础目录。 - 调用
get_file_path
函数时,传入不同的文件名,即可灵活获取不同文件的路径。 - 运行
main()
函数时,它将完成文件读取、数据框拼接和文件保存操作,并进行相应的异常处理。
这种方式将文件路径的生成逻辑封装在函数中,当需要修改文件存储的目录时,只需修改 get_file_path
函数中的 base_dir
即可,提高了代码的可维护性和灵活性。