[英]how to write multiple csv files in python
我需要將excel轉換為csv。 但我不能多寫csv文件
import sys,os
sys.path.insert(0,'D:/apera/Python27/xlrd-0.9.3')
import xlrd
import csv
path = "D:/apera/Workspace/Sounding"
CSVFile1 = "D:/apera/Workspace/Sounding/sounding001.csv"
CSVFile2 = "D:/apera/Workspace/Sounding/sounding002.csv"
for root,dirs,files in os.walk(path):
xlsfiles=[ _ for _ in files if _.endswith('.xls') ]
for xlsfile in xlsfiles:
wb = xlrd.open_workbook(os.path.join(root,xlsfile))
n = len(wb.sheets())
ws = wb.sheet_by_name("INPUT")
with open(CSVFile1, 'wb') as csvfile:
wr = csv.writer(csvfile, quoting=csv.QUOTE_ALL, delimiter=';')
for rownum in xrange(ws.nrows):
wr.writerow(list(x.encode('latin1')for x in ws.row_values(rownum)))
with open(CSVFile2, 'wb') as csvfile:
wr = csv.writer(csvfile, quoting=csv.QUOTE_ALL, delimiter=';')
for rownum in xrange(ws.nrows):
wr.writerow(list(x.encode('latin1')for x in ws.row_values(rownum)))
csvfile.close()
這是編輯過的問題。 我需要編寫csv文件。 僅需要寫入2個文件。 所以我寫了兩次。 有沒有一種方法可以使它更簡單。 因此,我不需要打開csvfile3、4、5等。.謝謝
如果您的問題是關於如何使用“ *”通配符打開多個文件,那么我認為您可以使用glob
模塊(如您已經提到的):
import glob
file_names = glob.glob("*.txt")
for file_name in file_names:
f = open(file_name, 'wb')
f.write("AAA")
關於python中文件名通配符的類似問題已在此處討論。
您可以執行以下操作(用於寫入多個csv文件):
import sys,os,xlrd,csv
sys.path.insert(0,'D:/apera/Python27/xlrd-0.9.3')
path = "D:/apera/Workspace/Sounding"
files_to_write = ["D:/apera/Workspace/Sounding/sounding1.csv","D:/apera/Workspace/Sounding/sounding2.csv"]
for root,dirs,files in os.walk(path):
xlsfiles=[ _ for _ in files if _.endswith('.xls') ]
for xlsfile in xlsfiles:
wb = xlrd.open_workbook(os.path.join(root,xlsfile))
n = len(wb.sheets())
ws = wb.sheet_by_name("INPUT")
for z in files_to_write:
with open(z, 'wb') as csvfile:
wr = csv.writer(csvfile, quoting=csv.QUOTE_ALL, delimiter=';')
for rownum in xrange(ws.nrows):
wr.writerow(list(x.encode('latin1')for x in ws.row_values(rownum)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.