【问题标题】:reading from many files in a loop and writing the read data from each file in another file in Python在循环中读取多个文件并将每个文件中的读取数据写入 Python 中的另一个文件
【发布时间】:2019-12-18 15:28:16
【问题描述】:

我正在编写一个脚本来读取多个文件并将信息从它们复制到另一个文件。

我的初始脚本应该从给定目录读取.xlsx 文件,复制文件中特定工作表的某个部分并将其粘贴到另一个文件中。这是我的代码,它正在工作:

import xlsxwriter
import pandas as pd
import numpy
data=pd.read_excel(r'C:\Users\bvi\Desktop\python 
   script\EMC_review_template_v10.xlsx',sheet_name='Test_Summary',skiprows=5,nrows=44,usecols='A:O')
df = pd.DataFrame(data)

df2=df.to_excel('try.xlsx',sheet())
print(df2)

当我试图形成一个循环时,问题就开始了:

import xlsxwriter
import pandas as pd
import numpy
import pathlib
import os
path=(r"C:\Users\bvi\Desktop\files")
files = []
###r=root, d=directories, f = files
for root, dirs, files in os.walk(path):
    for filename in files:
        length=len(files)
        for i in range(length):
            print(filename[i])

data = pd.read_excel(r'path\filename[i]',sheet_name='Test_Summary', skiprows=5,nrows=44, 
    usecols='A:O')

df = pd.DataFrame(data)
    df2=df.to_excel(r'C:\Users\bvi\Desktop\result\summary.xlsx',sheet_name='EMC_review1')
print(df2, file)

我正在努力创建一个遍历目录中文件的循环。我想让文件的读取成为文件名的函数。

【问题讨论】:

  • 你遇到了什么错误?
  • 你的代码 sn-p 失去了缩进,你能编辑一下让事情更清楚吗?

标签: python loops xlsx writing


【解决方案1】:

我猜 pb 来自os.walk 循环内的双循环。试试这个:

path=(r"C:\Users\bvi\Desktop\files")
for root, dirs, files in os.walk(path):
    for filename in files:
        print(filename)
        data = pd.read_excel(path+'/'+filename',sheet_name='Test_Summary', 
                             skiprows=5,nrows=44, usecols='A:O')
        df = pd.DataFrame(data)
        df2=df.to_excel(r'C:\Users\bvi\Desktop\result\summary.xlsx',
                        sheet_name=filename)

如果您所有的“文件名”都是唯一的,这会将多个 xlsx 文件中的“Test_summary”表合并为一个多表 xlsx(每个文件一张)。这是你需要的吗?

【讨论】:

  • 是的,这就是我想要的。字符串文件名就像 [EMC_review1, EMC_review1]..etc 在它们中的每一个中我都有“Test_Summary”表。我想从这张表中读取从 A 到 O 的列,并对所有文件执行此操作,然后将读取的数据数组写入一个多表文件中。我在我的代码中尝试了你的代码,但我偶然发现了一个错误。
  • @Billana Vidova:你能把错误信息贴在这里吗?
  • 我设法让它工作,但现在一切都写在输出文件的同一张纸上..
猜你喜欢
  • 2018-10-30
  • 1970-01-01
  • 1970-01-01
  • 2021-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-14
  • 2020-04-26
相关资源
最近更新 更多