2013-06-23 95 views
-1

我希望能够自动打开文件名并将其保存为.csv文件,我生成的文件总是被称为同一件事物+今天的日期。例如今天的电子表格可称为:在Python中打开文件名+日期为csv

"TODAYS SHEET" + Todays date.xls 

存储在位置

C:\A\B\C\D 

我该如何获得代码来打开今天的.xls文件并将其保存在位置为.csv

C:\A\B\C\D\E 

我最终希望直接从这个.csv文件加载数据,以便与webscraper进行比较,因此可能会有方法将.xls文件作为.csv打开,而不将其另存为.csv作为另一个位置。

回答

5

它看起来应该像什么接近:

import datetime 
today_string = datetime.datetime.today().strftime('%x') 

with open('C:/A/B/C/D/TODAYS SHEET' + today_string + '.csv', 'w') as my_file: 
    my_file.write('a,a,a,a,a,a') 

你可以看看string format的strftime函数。也看看open function和你可以做什么with files

+0

欢呼Paco,上面的代码是否直接打开.xls作为.csv? – AEA

+0

a CSV,如果你想要一个xls,你需要使用python excel模块http://www.python-excel.org/ – Paco

1

要打开csv我会使用xlrd。

import csv 
import datetime 
import os 

import xlrd 

path = "C:\Users\John\Desktop" 
file_name = "TODAYS SHEET " + datetime.datetime.today().strftime('%Y-%m-%d') + ".csv" 

with open(os.path.join(path, file_name), 'w') as file_: 

    writer = csv.writer(file_) 

    workbook = xlrd.open_workbook('herp.xlsx') 
    worksheet = workbook.sheet_by_name('A Snazzy Title') 

    num_rows = worksheet.nrows - 1 
    curr_row = -1 

    while curr_row < num_rows: 
     curr_row += 1 
     row = [cell.value for cell in worksheet.row(curr_row)] 
     writer.writerow(row)