簡體   English   中英

Python:希望從目錄中的單個csv文件捕獲特定的單元格值,然后在新的Excel文件中列出這些值

[英]Python: looking to capture a particular cell value from individual csv files in a directory and then list the values in a new Excel file

我之前發布了一個類似的問題,但是我的理解是我正在處理CSV文件。 我似乎擁有的是偽裝成CSV的xls文件。 我擁有的CSV無法在Excel以外的任何應用程序中打開,否則運行腳本后會出現各種奇怪的字符。

我想要做的是從目錄中的單個csv文件(Excel文件)捕獲特定的單元格值(數字格式為0.342或類似格式),然后將其發布到新的Excel文件中。 因此,如果我在目錄中有四個csv文件,我想從每個csv文件中捕獲單元格[B:12]中的值,並將其發布到列表中的新Excel文件中,例如...

0.345、0.342、0.543、0.246,

我在下面發布了一些可以正常工作的代碼,我可以在行>>打印數據<<處打印幾個正確的值,但是我無法正確地將值保存到輸出Excel文件中。 到目前為止,我得到的只是來自上面用空白單元格處理的最后一個CSV文件中單元格[B:12]的值。 任何幫助將非常感激。

import xlwt
import xlrd
import csv
import os


files = ['file1.csv','file2.csv','file3.csv','file4.csv']
n = 0
row = 0
#filename = ('outputFULL.csv', 'a')
outputfile = open('outputList.xls', 'wb')

while n<len(files):
    fname = files[n]
    currentfile = xlrd.open_workbook(fname,'r')
    sheetr = currentfile.sheet_by_index(0)
    data = [sheetr.cell_value(12, 1) for col in range(sheetr.ncols)]
    print data #for testing

    workbookw = xlwt.Workbook()
    sheetw = workbookw.add_sheet('test')

    for index, value in enumerate(data):
        sheetw.write(row, index, value)
        workbookw.save('outputList.xls')

        row = row +1
        n = n+1    

workbookw.save('outputList.xls')

更新

根據您對我問題的回答,我認為您的代碼可以大大簡化。 如果我在此處的要求中缺少任何內容,或者您​​有任何疑問,請告訴我:

import xlwt, xlrd, csv, os

files = ['file1.csv','file2.csv','file3.csv','file4.csv']
outputfile = 'outputList.xls'
wbk = xlwt.Workbook()
sheetw = wbk.add_sheet('sheet 1')
row_offset, col_offset = 2, 2 # i.e. 2, 2 to print in C3 instead of A1

for fname in files:
    currentfile = xlrd.open_workbook(fname,'r')
    sheetr = currentfile.sheet_by_index(0)    
    data = sheetr.cell(11,0).value
    print data #for testing
    sheetw.write(files.index(fname) + row_offset, 0 + col_offset, data)    

wbk.save(outputfile)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM