问题描述
我正在尝试创建一个小型应用程序,该应用程序可识别目录中文件夹的名称,并将其放置在漂亮的excel电子表格中。
但是,每当我运行该应用程序时,for循环的结果就会在excel电子表格中被覆盖,而我最终总是只有一行,而不是循环所导致的所有行。
能否请您看看我的代码,并提供有关我该怎么做的建议?
import os
import pandas as pd
CCM = "C:\Electronical Files\Drivers\CCM"
f = open("CCMs.txt","w",encoding="utf-8")
f.close()
for crew in os.listdir(CCM):
full_name = crew.split(",")
first_name = full_name[1]
last_name = full_name[0]
df = pd.DataFrame({"First name": [first_name],"Last name": [last_name]})
df.to_excel("./CMMs.xlsx",sheet_name="CMMs")
f = open("CCMs.txt","a",encoding="utf-8")
f.write(crew + "\n")
f.close()
print(first_name + " " + last_name)
关于, 亚历克斯
解决方法
保持数据框的创建并导出到excel,直到循环完成。相反,您可以将名称收集在用于创建数据框的列表中
names = []
for crew in os.listdir(CCM):
names.append(crew.split(',')[::-1])
df = pd.DataFrame(names,columns=['First Name','Last Name'])
df.to_excel('./CMMs.xlsx',sheet_name='CMMs')
with open('CCMs.txt','w',encoding='utf-8') as f:
f.write('\n'.join(names))