Excelにデータを書き込むと、「ZIPは1980年より前のタイムスタンプをサポートしていません」

カルロ1585

重複を作成したくないのですが、周りを見回して(スタックオーバーフローや他のフォーラム)、同様の質問を見つけましたが、どれも私の問題を解決しませんでした。

DBにクエリを実行し、PandasでDataFrameを作成して、Excelファイルに書き込むだけのPythonコードがあります。

コードはローカルで問題なく機能しましたが、サーバーに導入すると、次のエラーが発生し始めます。

  File "Test.py", line 34, in <module>
    test()
  File "Test.py", line 31, in test
    ex.generate_file()
  File "/home/carlo/Test/Utility/ExportExcell.py", line 96, in generate_file
    writer.save()
  File "/usr/local/lib/python2.7/dist-packages/pandas/io/excel.py", line 1952, in save
    return self.book.close()
  File "/usr/local/lib/python2.7/dist-packages/xlsxwriter/workbook.py", line 306, in close
    self._store_workbook()
  File "/usr/local/lib/python2.7/dist-packages/xlsxwriter/workbook.py", line 677, in _store_workbook
    xlsx_file.write(os_filename, xml_filename)
  File "/usr/lib/python2.7/zipfile.py", line 1135, in write
    zinfo = ZipInfo(arcname, date_time)
  File "/usr/lib/python2.7/zipfile.py", line 305, in __init__
    raise ValueError('ZIP does not support timestamps before 1980')
ValueError: ZIP does not support timestamps before 1980

それがすべて問題ないことを確認するために、私はDataFrameを印刷しました。ローカルで実行すると、問題なくexcellファイルが生成されるため、見栄えがよくなります。

   Computer_System_Memory_Size  Count_of_HostName   Disk_Total_Size  Number_of_CPU       OS_Family
0                5736053088256                 70     6072238035456         282660         Windows
1                  96159653888                607       96630589440        2451066         vCenter
2                            0                  9                 0          36342  Virtualization
3             2469361287143424                 37  2389533519619072         149406            Unix
4                3691651514368                 90     5817485303808         363420           Linux

ここにタイムスタンプが表示されません。これは私のコードの一部です。

pivot = pd.DataFrame.from_dict(pivot) #pivot= information extracted from DB

pd.to_numeric(pivot['Count_of_HostName'], downcast='signed')#try to enforce to be a numeric value in case it get confused with a datetime
pd.to_numeric(pivot['Disk_Total_Size'], downcast='signed')#try to enforce to be a numeric value in case it get confused with a datetime
pd.to_numeric(pivot['Computer_System_Memory_Size'], downcast='signed')#try to enforce to be a numeric value in case it get confused with a datetime
pd.to_numeric(pivot['Number_of_CPU'], downcast='signed')#try to enforce to be a numeric value in case it get confused with a datetime

print pivot
name = 'TempReport/Report.xlsx'#set-up file name
writer = pd.ExcelWriter(name, engine='xlsxwriter')#create excel with file name
pivot.to_excel(writer, 'Pivot', index=False)#introduce my data to excel
writer.save()#write to file, it's where it fail

「ZIPは1980年以前のタイムスタンプをサポートしていません」というエラーが表示されない限り、Ubuntu 16.04サーバーで機能しない理由を誰かが知っていますか?私は多くのこと、ライブラリのバージョンをチェックし、データがないことを確認しました

jmcnamara

XlsxWriterは、XLSXファイルを構成する個々のXMLファイルを設定します。作成日は1980年1月1日で、これは(私が思うに)ZIPエポックでExcelで使用される日付です。これにより、同じ入力データとメタデータが使用されると、XlsxWriterによって作成されたファイルのバイナリ再現性が可能になります。

日付は次のように設定されます(メモリ内にないzipfile.pyの場合)。

timestamp = time.mktime((1980, 1, 1, 0, 0, 0, 0, 0, 0))
os.utime(os_filename, (timestamp, timestamp))

表示されているエラーは、これが何らかの方法で失敗し、日付が1980年1月1日より前に設定されている場合に発生します。

これは、ユーザーがコンテナーを使用していて、コンテナーのホストシステムとの時間が異なる状況で、これが発生するのを1回だけ見たことがあります。

このような状況や、何らかの理由でタイムスタンプが正しく設定されていない可能性がありますか?

更新:失敗した例と同じ環境でこれを実行してみてください。

import os
import time

filename = 'file.txt'
file = open(filename, 'w')
file.close()

timestamp = time.mktime((1980, 1, 1, 0, 0, 0, 0, 0, 0))
os.utime(filename, (timestamp, timestamp))

print(time.ctime(os.path.getmtime(filename)))
# Should give:
# Tue Jan  1 00:00:00 1980

更新:この問題はXlsxWriter> = 1.1.9で修正されています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

zipは1980awsより前のタイムスタンプをサポートしていません

分類Dev

Cloud Container Builder、ZIPは1980年より前のタイムスタンプをサポートしていません

分類Dev

タイプ* NewsAnswerは、構造体の範囲を指定しようとするときのインデックス作成をサポートしていません

分類Dev

プログラムのコードでテキストファイルを作成して書き込むこと、テキストファイルを作成してデータを個別に書き込むことには利点がありますか?

分類Dev

削ったデータを特定のExcelスプレッドシートのセルの場所に書き込んだり貼り付けたりしようとしていますが、どうすればよいかわかりません。

分類Dev

辞書のキーとしてのタプルは次のように述べています。「タプル」オブジェクトはアイテムの割り当てをサポートしていません

分類Dev

io :: Writeトレイトを介して書き込むことにより、先物ストリームを介してデータを送信する方法は?

分類Dev

出力ファイル 'int'の書き込みエラーはバッファインターフェイスをサポートしていません

分類Dev

Firebaseサーバーのタイムスタンプは2つのリクエストを行わずに書き込むことができますか?

分類Dev

サイコロゲームのスコアをファイルに書き込もうとしていますが、このようなタイプエラーが発生しています。TypeError:write()引数はタプルではなくstrでなければなりません

分類Dev

インデックス列の値を無視して、既存のExcelシートの下にデータフレームを書き込む方法は?

分類Dev

タイプTの暗黙の引数はありません。データフレームをDataset [T]にキャストしようとしています。

分類Dev

ユーザースペースプログラムからデバイスファイルにデータを書き込むことはできません

分類Dev

bigQueryはミリ秒のタイムスタンプをサポートしていません

分類Dev

TSAタイムスタンプ付きのデジタル署名TSA応答PDFボックスにチェーンに証明書を追加すると「署名を書き込むのに十分なスペースがありません」というエラーが表示されます

分類Dev

一部のエントリ タイプがユーザーによって許可されていない場合、HealthKit は複数のエントリを含む HKSample を書き込むことができません

分類Dev

フェザーを使用してデータフレームを書き込めません(ストライドデータはサポートされていません)

分類Dev

AndroidXMLSerializerはすべてのデータをXMLファイルに書き込むことはできません

分類Dev

numpy.savetxt()を使用してcsvにデータを書き込むときに最初のエントリがありません

分類Dev

Spark構造化ストリーミングを使用してParquetファイルにデータを書き込むことができません

分類Dev

エラーの取得オブジェクトのリストにデータを入力しようとしているときに、タイプ 'object'の異なるサポートオブジェクト '[objectObject]'が見つかりません

分類Dev

403-Javaを使用してGoogleスプレッドシートにデータを書き込むための十分な権限がありません

分類Dev

タイムスタンプ形式は、デフォルト値としてReact`react-datepicker`をサポートしていません

分類Dev

JSF 2.1.13カスタムコンポーネントが見つかりません:タグライブラリは名前空間をサポートしています:<namsepace>が、名前にタグが定義されていません:<compositecomponent>

分類Dev

Javaを使用して列ごとにExcelのデータのリストを書き込む方法は?

分類Dev

Firebaseでサーバーのタイムスタンプを含むオブジェクトの読み取りと書き込みを処理するにはどうすればよいですか?

分類Dev

Spark書き込み:CSVデータソースはnullデータ型をサポートしていません

分類Dev

オブジェクトでSqliteデータベースを更新するときに、エラー「タイプ 'セッション'はタイプ 'Map <String、dynamic>'のサブタイプではありません」をどのように解決しますか?

分類Dev

db2のインポートまたはロードを使用してDashDBにデータを取り込むことはできますか?

Related 関連記事

  1. 1

    zipは1980awsより前のタイムスタンプをサポートしていません

  2. 2

    Cloud Container Builder、ZIPは1980年より前のタイムスタンプをサポートしていません

  3. 3

    タイプ* NewsAnswerは、構造体の範囲を指定しようとするときのインデックス作成をサポートしていません

  4. 4

    プログラムのコードでテキストファイルを作成して書き込むこと、テキストファイルを作成してデータを個別に書き込むことには利点がありますか?

  5. 5

    削ったデータを特定のExcelスプレッドシートのセルの場所に書き込んだり貼り付けたりしようとしていますが、どうすればよいかわかりません。

  6. 6

    辞書のキーとしてのタプルは次のように述べています。「タプル」オブジェクトはアイテムの割り当てをサポートしていません

  7. 7

    io :: Writeトレイトを介して書き込むことにより、先物ストリームを介してデータを送信する方法は?

  8. 8

    出力ファイル 'int'の書き込みエラーはバッファインターフェイスをサポートしていません

  9. 9

    Firebaseサーバーのタイムスタンプは2つのリクエストを行わずに書き込むことができますか?

  10. 10

    サイコロゲームのスコアをファイルに書き込もうとしていますが、このようなタイプエラーが発生しています。TypeError:write()引数はタプルではなくstrでなければなりません

  11. 11

    インデックス列の値を無視して、既存のExcelシートの下にデータフレームを書き込む方法は?

  12. 12

    タイプTの暗黙の引数はありません。データフレームをDataset [T]にキャストしようとしています。

  13. 13

    ユーザースペースプログラムからデバイスファイルにデータを書き込むことはできません

  14. 14

    bigQueryはミリ秒のタイムスタンプをサポートしていません

  15. 15

    TSAタイムスタンプ付きのデジタル署名TSA応答PDFボックスにチェーンに証明書を追加すると「署名を書き込むのに十分なスペースがありません」というエラーが表示されます

  16. 16

    一部のエントリ タイプがユーザーによって許可されていない場合、HealthKit は複数のエントリを含む HKSample を書き込むことができません

  17. 17

    フェザーを使用してデータフレームを書き込めません(ストライドデータはサポートされていません)

  18. 18

    AndroidXMLSerializerはすべてのデータをXMLファイルに書き込むことはできません

  19. 19

    numpy.savetxt()を使用してcsvにデータを書き込むときに最初のエントリがありません

  20. 20

    Spark構造化ストリーミングを使用してParquetファイルにデータを書き込むことができません

  21. 21

    エラーの取得オブジェクトのリストにデータを入力しようとしているときに、タイプ 'object'の異なるサポートオブジェクト '[objectObject]'が見つかりません

  22. 22

    403-Javaを使用してGoogleスプレッドシートにデータを書き込むための十分な権限がありません

  23. 23

    タイムスタンプ形式は、デフォルト値としてReact`react-datepicker`をサポートしていません

  24. 24

    JSF 2.1.13カスタムコンポーネントが見つかりません:タグライブラリは名前空間をサポートしています:<namsepace>が、名前にタグが定義されていません:<compositecomponent>

  25. 25

    Javaを使用して列ごとにExcelのデータのリストを書き込む方法は?

  26. 26

    Firebaseでサーバーのタイムスタンプを含むオブジェクトの読み取りと書き込みを処理するにはどうすればよいですか?

  27. 27

    Spark書き込み:CSVデータソースはnullデータ型をサポートしていません

  28. 28

    オブジェクトでSqliteデータベースを更新するときに、エラー「タイプ 'セッション'はタイプ 'Map <String、dynamic>'のサブタイプではありません」をどのように解決しますか?

  29. 29

    db2のインポートまたはロードを使用してDashDBにデータを取り込むことはできますか?

ホットタグ

アーカイブ