我试图创建一个脚本,从CSV文件中选择一些列,并将它们保存到另一个文件中(理想情况下指定列标题)。这是我开始的查询,它将复制所有列。如何将其更改为仅复制其中的一部分?
# importing openpyxl module
import openpyxl as xl;
# opening the source excel file
filename ="C:\\Users\\...\\input.clv"
wb1 = xl.load_workbook(filename)
ws1 = wb1.worksheets[0]
# opening the destination excel file
filename1 ="C:\\Users\\...\\output.clv"
wb2 = xl.load_workbook(filename1)
ws2 = wb2.active
# calculate total number of rows and
# columns in source excel file
mr = ws1.max_row
mc = ws1.max_column
# copying the cell values from source
# excel file to destination excel file
for i in range (1, mr + 1):
for j in range (1, mc + 1):
# reading cell value from source excel file
c = ws1.cell(row = i, column = j)
# writing the read value to destination excel file
ws2.cell(row = i, column = j).value = c.value
# saving the destination excel file
wb2.save(str(filename1))
在此先谢谢您!
4条答案
按热度按时间kqhtkvqz1#
这就是我使用Python文件阅读/写的方式。
我的
readCsv
函数生成一个2D列表,其中每个项目都是CSV文件中一行数据的列表。因此,在我注解了# Remove the data you don't need
的地方,您将遍历2D列表,从构成您要删除的列的每一行中删除项。希望这有意义!ecr0jaav2#
您可以从stdlib使用CSV:
就个人而言,我会使用sqlite:
4xy9mtcn3#
根据您将某些列从csv文件保存到另一个文件的目的,您可以使用pandas库,如下所示:
你也可以使用csv DictReader,DictWriter作为另一种方法,它的代码更长,但时间更快(基于我的时间):
vs91vp4v4#
我使用DictReader和DictWriter找到了这个更短的方法: