python - 想要使用 python 读取文件并写入现有的 excel 工作表
问题描述
[在此处输入图像描述][1]我有一个用管道分隔符分隔数据的文本文件,我想将其写入 Excel 工作表。
我已经创建了一个代码,但由于输入文件中的数据很大(大约 45kb),因此执行大约需要 700 秒。有什么办法可以优化吗?
谢谢
请找到如下代码:
import csv
from time import process_time
def create_sheet():
wb1 = Workbook()
wb1.create_sheet("A")
wb1.create_sheet("B")
src_sheet = wb1.create_sheet("C")
print(type(src_sheet))
wb1.create_sheet("D")
sheet = wb1['Sheet']
wb1.remove(sheet)
write_Data(src_sheet)
wb1.save('outfile.xlsx')
def write_Data(src_sheet):
csv.register_dialect('myDialect', delimiter='|', quoting=csv.QUOTE_ALL)
data_list = []
with open("C:/Users/atapadar/input_text.txt",
"r") as csvfile:
reader = csv.reader(csvfile, dialect='myDialect')
count: int = 1
for i in reader:
if count == 1:
i.append("New col")
else:
i.append(i[0] + i[1] + i[3])
count = count + 1
src_sheet.append(i)
t1_start = process_time()
create_sheet()
t1_stop = process_time()
print("Elapsed time during the whole program in seconds:", t1_stop - t1_start)
[1]: https://i.stack.imgur.com/X9iMQ.png
解决方案
通过数据框执行此操作会简单得多:
df = pd.read_csv("filename.csv", sep="|")
df['New col'] = int(df['C1']) + int(df['C2']) + int(df['C3'])
df.to_excel("output.xlsx", sheet_name='Sheet_name_1')
推荐阅读
- python - TensorFlow 如何使用 TensorFlow 从 CSV 文件制作分类器?
- ios - 如何在iOS中以RTL语言默认显示最右边的UICollectionViewCell
- c++ - 如何使用 OpenGL 和 Qt 移动场景视图?
- asp.net - jenkins 部署后 15 分钟后回收应用程序池
- javascript - Javascript:同步执行
- graphql - 我应该如何解决石墨烯中带有前导下划线的字段?
- c++ - 为什么 c++ 使用 CustomClass** 而不是 CustomClass* 来创建返回 CustomClass 指针列表的函数?
- gulp - Gulp-inject 注入文件路径错误
- javascript - Javascript数组播放声音
- javascript - ANGULAR 动态表单 - 使用 ASYNC 数据失败