如何让python读取已转换为excel文件的CSV文件



我试图制作一个程序,读取我从世界银行下载的关于每个国家GDP的CSV文件。我希望它能够首先打开文件,然后读取它,然后检索数据。然而,出现了一条巨大的错误消息(事实上,这条消息太大了,我会把它和代码分开(,当我试图通过在这个网站上搜索答案来解决这些错误时,只会出现另一个错误。这是代码。感谢任何愿意并且能够提供帮助的人。

import csv
from openpyxl import Workbook
wb = Workbook()
with open(r'C:UsersMiguelDownloadsAPI_NY.GDP.PCAP.CD_DS2_en_csv_v2_1429392.zip') as csvfile:
ws = wb.active
ws.title = "Country Analyzer" #title of the program
ws.sheet_properties.tabColor = "FFFFFF" #RGB values
sheet = wb.get_sheet_by_name('API_NY.GDP.PCAP.CD_DS2_en_csv_v2_1429392')
tuple(sheet['A1':'C3'])

Warning (from warnings module):
File "C:UsersMiguelAppDataLocalProgramsPythonPython37-32I'm so tired of this Work.py", line 14
sheet = wb.get_sheet_by_name('API_NY.GDP.PCAP.CD_DS2_en_csv_v2_1429392')
DeprecationWarning: Call to deprecated function get_sheet_by_name (Use wb[sheetname]).
Traceback (most recent call last):
File "C:UsersMiguelAppDataLocalProgramsPythonPython37-32I'm so tired of this Work.py", line 14, in <module>
sheet = wb.get_sheet_by_name('API_NY.GDP.PCAP.CD_DS2_en_csv_v2_1429392')
File "C:UsersMiguelAppDataLocalProgramsPythonPython37-32libsite-packagesopenpyxlcompat__init__.py", line 38, in new_func1
return func1(*args, **kwargs)
File "C:UsersMiguelAppDataLocalProgramsPythonPython37-32libsite-packagesopenpyxlworkbookworkbook.py", line 247, in get_sheet_by_name
return self[name]
File "C:UsersMiguelAppDataLocalProgramsPythonPython37-32libsite-packagesopenpyxlworkbookworkbook.py", line 273, in __getitem__
raise KeyError("Worksheet {0} does not exist.".format(key))
KeyError: 'Worksheet API_NY.GDP.PCAP.CD_DS2_en_csv_v2_1429392 does not exist.'

Ps-请不要判断文件的名称

您试图打开的文件是一个zip文件。您必须首先解压缩内容,或者如果您想自动化此过程,请使用Python为您解压缩文件-请参阅此处或下面的内容:

import zipfile
with zipfile.ZipFile(path_to_zip_file, 'r') as zip_ref:
zip_ref.extractall(directory_to_extract_to)

我建议在尝试自动解压缩过程之前先手动解压缩文件。

正如Nick.McDermaid所提到的,你需要确定文件的格式。以确保openpyxl可以使用它。根据他们的文档;openpyxl是一个用于读取/写入Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库;。

如果你认为你的文件是其中一种格式,请尝试这个简单的代码片段,以确保你可以使用openpyxl打开你的文件并从中读取:

from openpyxl import load_workbook
wb = load_workbook('test.xlsx')
print wb.sheetnames

如果现在这样做有效,你就可以继续你试图做的事情了。在这里查看使用openpyxl从文件中读取的完整文档:https://openpyxl.readthedocs.io/en/stable/usage.html#read-现有工作簿

相关内容

  • 没有找到相关文章

最新更新