2017-08-28 14 views
0

Pythonを完全に新しくしました。私は、zipファイルをダウンロードし、その内容を解凍し、フォルダから特定のファイルを選択し、カスタマイズされたファイル名を提供し、csvとして保存するプロセスを自動化しようとしています。これは私がこれまで持っていたものです。Python - 解凍されたフォルダから、ファイルの名前を変更してcsvとして保存します

import zipfile 
import csv 
import unicodecsv as csv 

path = '.../Download' 
file_list = [os.path.join(path, f) for f in os.listdir(path)] 
time_sorted_list = sorted(file_list, key=os.path.getmtime) 
file_name = time_sorted_list[-1] 
myzip = zipfile.ZipFile(file_name) 
for contained_file in myzip.namelist(): 
    with myzip.open(contained_file, 'r') as f: 
     # save data to a CSV file 
     contained_file.to_csv('filetocsv.csv', encoding='utf-8') 

はしかし、私はこのエラーに出くわした:

File "<ipython-input-13-189ea422e24c>", line 9, in <module> 
    f.to_csv('filetocsv.csv', encoding='utf-8') 
AttributeError: 'ZipExtFile' object has no attribute 'to_csv' 

stackoverflowの上熟読から、私は目的がto_csv機能を持っていないことを理解しています。この問題をどのように修正できますか?

さらに、保存されたcsvファイルベースの名前変更機能をコード内の複数の保存オブジェクトにカスタマイズする方法はありますか?たとえば、ダウンロードしたファイルがcrop_water_supply、input_level、およびcountryの場合、ファイル名はcrop-water_supply-input_level-countryです。

編集 @Generic Guyさんのコメントに対する応答として、保存しようとしているファイルは.ascファイルです。 .csvファイルを.csvファイルとして開くことができます。私はちょうどプロセス全体を自動化したい。

@ MedAliさんのコメントに対する回答として、あなたの質問に最もよく答える方法がわかりませんが、フォルダを解凍すると、次のファイルがあります。 data.asc、data.prj、legend.png、map.png、 select.tsv、およびstat.tsvです。

私が心配しているのは、data.ascファイルです。このファイルは、csvファイルとして別のフォルダに保存します。

編集

私はメモ帳を使用してdata.ascファイルを開くと、それは次のようになります。

ここ

ncols 96 nrows 78 xllcorner -80.583333333333 yllcorner 20.833333333333 cellsize 0.083333333333 NODATA_value -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 0 0 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 0 -0.00899999961256980896 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 0 -9 0 0 -9 -9 1.4900000095367431641 -9 -9 -9
-9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -0.00899999961256980896 -9 -9 -9 -9 0 -9 -9 -9 -9 1.4969999790191650391 1.491000056266784668 1.4889999628067016602 1.4859999418258666992 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -0.00899999961256980896 -9 -9 -9 -9 -9 -9 -0.00899999961256980896 1.5199999809265136719 1.5099999904632568359 1.5039999485015869141 1.5039999485015869141 1.498000025749206543 1.488000035285949707 1.4869999885559082031 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.5759999752044677734 1.5690000057220458984 1.5620000362396240234 -9 -9 -9 -9 -9 1.5219999551773071289 1.5190000534057617188 -9 -9 -9 1.5169999599456787109 1.5099999904632568359 1.504999995231628418 1.5030000209808349609 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.5349999666213989258 1.5349999666213989258 -9 -9 1.5599999427795410156 1.5599999427795410156 1.5529999732971191406 1.5479999780654907227 1.5420000553131103516 1.5390000343322753906 1.5449999570846557617 1.5319999456405639648 1.5130000114440917969 1.508999943733215332 -9 -9 -9 -9 1.504999995231628418 1.498000025749206543 1.4969999790191650391 1.4939999580383300781 1.4939999580383300781 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.5399999618530273438 1.5399999618530273438 1.5399999618530273438 1.5399999618530273438 1.5369999408721923828 1.5349999666213989258 1.5319999456405639648 1.5260000228881835938 1.5180000066757202148 1.5219999551773071289 1.511999964714050293 1.506999969482421875 1.493000030517578125 1.4850000143051147461 -0.00899999961256980896 -9 -9 -9 1.4520000219345092773 1.4450000524520874023 1.4379999637603759766 1.4329999685287475586 1.4129999876022338867 1.4359999895095825195 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.5429999828338623047 1.5429999828338623047 1.5429999828338623047 1.5360000133514404297 1.5199999809265136719 1.5190000534057617188 -9 -9 -9 -9 -9 -9 1.4750000238418579102 1.4700000286102294922 -9 -9 -9 -9 1.4170000553131103516 1.4140000343322753906 1.4110000133514404297 1.4129999876022338867 1.4110000133514404297 1.4129999876022338867 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.5440000295639038086 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.375 1.375 1.381999969482421875 1.3910000324249267578 1.383999943733215332 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.3480000495910644531 1.3489999771118164062 1.3539999723434448242 1.3600000143051147461 1.3619999885559082031 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.3220000267028808594 -9 -9 1.3220000267028808594 1.3250000476837158203 1.3300000429153442383 1.3270000219345092773 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.3190000057220458984 -9 -9 1.3070000410079956055 1.3140000104904174805 1.3200000524520874023 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.3079999685287475586 -9 -9 1.2730000019073486328 1.2829999923706054688 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.3090000152587890625 -9 1.2539999485015869141 1.254999995231628418 1.2560000419616699219 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.2220000028610229492 1.2220000028610229492 1.2230000495910644531 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.1890000104904174805 1.2039999961853027344 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.2810000181198120117 1.2810000181198120117 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.3090000152587890625 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.2799999713897705078 1.2810000181198120117 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.3059999942779541016 1.3070000410079956055 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -0.00899999961256980896 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.3070000410079956055 1.3049999475479125977 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -0.00899999961256980896 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 0 -9 -9 -9 -9 -9 -9 -9 -9 -9 0 0 0 0 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 0 0 -9 -9 -9 -9 -9 -9 -9 -9 -9 0 0 0 0 0 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 0 0 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 0 0 -9 0 0 0 0 -9 -9 -9 -9 -9 -9 -9 -9 -9
-9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 1.3059999942779541016 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 0 -9 -9 -9 -9 0 0 0 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 0 0 0 -9 -9 -9 -9 -9 -9 -9 -9 -9
-9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 0 0 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9

+1

変換しようとしているファイルはどのようなものですか?すでにCSV形式であれば、簡単にできるファイル拡張子を変更するだけです。それ以外の場合は、ファイルからデータを読み込み、csvとして書き出す必要があります。 –

+1

ファイルmyzip.extractall( "destination_folder")を解凍し、解凍したフォルダ内のファイルを繰り返してcsvに保存する必要があります。典型的なzipフォルダ構造を表示できますか? – MedAli

+0

data.ascファイルの例を共有して、CSVファイル標準を尊重しているかどうかを確認できますか? – MedAli

答えて

1

は、あなたがこれまで提供した内容に基づいて、答えのいくつかの要素であり、 。 data.ascがcsv標準に準拠している場合は、パンダを使用してcsvファイルに読み書きできます。

import zipfile 
import csv 
import pandas as pd 
# I assume this code is to get the name of the zipped file 
path = '.../Download' 
file_list = [os.path.join(path, f) for f in os.listdir(path)] 
time_sorted_list = sorted(file_list, key=os.path.getmtime) 
file_name = time_sorted_list[-1] 
# decompress the zipped file here 
myzip = zipfile.ZipFile(file_name) 
myzip.extractall("destination_folder") 

# you can use the pandas library to load the data into a dataframe 
df = pd.read_table("destination_folder/data.asc", sep="\s+", header=None) 
# and then write it back to a csv 
df.to_csv('filetocsv.csv', encoding='utf-8', sep=',', index=False) 
+0

'PermissionError:[Errno 13]アクセスが拒否されました: 'C:/.../ダウンロード\\ grid-m1b566d31a87cba1379e113bb93fdb61d5be5b128(1)' ' – user2105555

+0

どのステップですか?ファイルを読み取る権限があることを確認してください – MedAli

+0

私はエラーを修正することができました。あなたのコードは正常に動作します。また、 'extractall()'の代わりに、data.ascファイルだけをどのように抽出すればいいですか? – user2105555

関連する問題