gpt4 book ai didi

python - 如何通过 python 将我的 xlsx 文件批量转换为 CSV

转载 作者:太空宇宙 更新时间:2023-11-04 11:07:05 26 4
gpt4 key购买 nike

我正在尝试将 xlsx 文件列表转换为 csv 格式。目前我已经能够使用 xlrd 和 csv 来执行此操作,但使用以下代码逐个文件:

import xlrd
import csv

def csv_from_excel():
wb = xlrd.open_workbook(r"C:\Users\jonathon.kindred\Desktop\RM - USE\2018\JUL 2018\RM 2018-07-30.xlsx")
sh = wb.sheet_by_name('RM')
csv_file = open('RM 2018-07-30.csv', 'w', newline='')
wr = csv.writer(csv_file, quoting=csv.QUOTE_ALL)

for rownum in range(sh.nrows):
wr.writerow(sh.row_values(rownum))

csv_file.close()

csv_from_excel()


import pandas as pd
import numpy as np

df = pd.read_csv('RM 2018-07-30.csv', index_col= 0, encoding = 'iso-8859-1')

df2 = df[['Purchase Order','SKU','Markdown','Landed Cost','Original Price','Current Sale Price','Free Stock','OPO','ID Style','Supplier Style No']]

df2.to_csv(r"C:\Users\jonathon.kindred\Desktop\RM\2018\JUL 2018\RM 2018-07-30.csv", index = False)

我需要能够逐个文件夹而不是逐个文件地执行此文件夹。我已经设法使用 glob 获取了下一个文件夹的列表,见下​​文:

import glob

path = r"C:\Users\jonathon.kindred\Desktop\RM - USE\2018\AUG 2018"

files = [f for f in glob.glob(path + "**/*.xlsx", recursive=True)]

for f in files:
print(f)

问题是我发现很难将两个脚本结合起来以遵循以下步骤:

  1. 将 .xlsx 转换为 csv
  2. 仅选择“采购订单”、“SKU”、“ Markdown ”、“到岸成本”、“原价”、“当前销售价格”、“免费库存”、“OPO”、“ID 样式”这些列, '供应商类型编号'
  3. 将它放入我的其他文件夹。

这两个文件夹是; xlsx 位置:RM - USE 和目标位置:RM。

最佳答案

  1. 使用 os.listdir() 获取特定文件夹中所有文件的列表

  2. 将 csv_from_excel() 函数放在 for 循环中以遍历列表中的每个文件

    path = "PATH/TO/FOLDER" 
    list = os.listdir(path)
    for file in list:
    fileName = str(file)
    def csv_from_excel():
    wb = xlrd.open_workbook(fileName)
    sh = wb.sheet_by_name('RM')
    csv_file = open('RM 2018-07-30.csv', 'w', newline='')
    wr = csv.writer(csv_file, quoting=csv.QUOTE_ALL)

    for rownum in range(sh.nrows):
    wr.writerow(sh.row_values(rownum))

    csv_file.close()

    csv_from_excel()

更新:要选择CSV文件中的多列,使用pandas将列内容存储到pandas数据框中,然后您可以将数据框作为CSV保存到新文件夹中

import pandas
#Store CSV columns into a pandas data frame
colNames = ['Purchase Order','SKU','Markdown','Landed Cost','Original Price','Current Sale Price','Free Stock','OPO','ID Style','Supplier Style No']
data = pandas.read_csv(fileName, names=colNames)
#Extract the CSV columns to a new CSV
df = pandas.DataFrame(data, columns = colNames)
df.to_csv('PATH/TO/NEW/CSV', index=False)

关于python - 如何通过 python 将我的 xlsx 文件批量转换为 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59176822/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com