@wvage5elmp

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

[python]CSV->DBFファイルへの変換ができません.....お力をお貸しください

解決したいこと、目的

csvファイルをdbfファイルに変換したい(使用言語 python3)
GISソフトで画像を一括で読み込むためにdbfファイルを作成しようとしています
元のCSVは、[IMAGE,XMIN,YMIN,XMAX,YMAX]のようになっています

当方、簡単なマクロやプログラムを書けるくらいの技量

解決期限

2023/7月中

解決のために試したこと

  • FAQは確認したか?
    確認しましたが、dbfの読み込みや、csv変換はありましたが、dbfを作成する内容を見つけることができませんでした。
    以下のサイトが参考になりそうでいたが、python3で動作しませんでした。
    dbfpy3というのを試してみたいのですが、参考ページがなく作者が違うため、どのような動作ができるか分かりません
    https://qiita.com/Kanahiro/items/46d845c856546a424dcf

相談者にしてほしいこと

変換プログラムの作成へのヒント
そもそも、dbfファイルの書き出しはできるのか?

0 likes

3Answer

以下のサイトが参考になりそうでいたが、python3で動作しませんでした。

ご指定のサイトにあるexe版をpython3からexec関数で使えばいいのでは?
モジュールとして作成しなければならないのであれば
技量と時間が不足しているので正直にできない旨を伝えたほうが良いです。

あるいは運用で何とかするならAccsesでコンバートを運用するような思い切りが必要だと思います。
https://support.microsoft.com/ja-jp/office/dbase-%E3%81%AB%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B-ec7e1708-d6b3-4b11-834b-bf3377b32b1e#ID0EBBD=Newer_versions

1Like

Comments

  1. @wvage5elmp

    Questioner

    回答いただきありがとうございます
    ご指摘の通り技術不足です。先方には伝えており、さまざまな方法を模索しているところです

    汎用性を考えモジュールとして作成することを考えていますが、今のところ難しそうですね。。

    優先度を考えて、EXEは最後の手段、ACCESS,EXCELを利用したコンバートを考えてみたいと思います

    参考のURLありがとうございます
    勉強して、もう少し頑張ってみます!!

下記をPythonとして実行したいのであれば、ソースコードの1行目の#!/usr/bin/pythonを削除することで手元のパソコンで動作すると思いますよ。

0Like

Comments

  1. @wvage5elmp

    Questioner

    回答ありがとうございます
    実行した結果、下記のようなエラーがでてしまいました

    発生している問題・エラー

      File "/Users/XXXX/Desktop/dbf2csv.py", line 6, in <module>
        from dbfpy import dbf
      File "/usr/local/var/pyenv/versions/3.9.4/lib/python3.9/site-packages/dbfpy/dbf.py", line 280
        print repr(_rec)
              ^
    SyntaxError: invalid syntax
    

    入力ファイルの形式の問題なのでしょうか?
    入力ファイルの形式はcsvで、以下のような形です

    input.csv###

    IMAGE,XMIN,YMIN,XMAX,YMAX
    .\01.jgw,-29893.01,-16444.54,-29093.01,-15844.54
    .\02.jgw,-31493.01,-17044.54,-30693.01,-16444.54
    .\03.jgw,-30693.01,-17044.54,-29893.01,-16444.54
    
  2. dbf.pyの280行目にエラーがあると言ってますね。これ以上は私にもお手上げです。

    File "/usr/local/var/pyenv/versions/3.9.4/lib/python3.9/site-packages/dbfpy/dbf.py", line 280
    print repr(_rec)

  3. @wvage5elmp

    Questioner

    回答いただきありがとうございます

    エラーを調べても、なかなか解決策が見つからなくて。。
    モジュールに対しての、形式が間違ってるというエラーなのを疑っているのですが。。

    もう少し頑張ってみます

    回答ありがとうございます

  4. Python 2だったら動くかもしれませんね。

dbfpyはPython 2系ですので3系では動かないでしょう。

一方dbfpy3はPython 3系に対応していますが、「自己責任で」と書いてありますのでサポートはほぼ期待できません。

幸いdemoコードがありますから、これを参考にすることが出来ます。

以前のコードそのまま引き継ぐことはできないでしょう。
ソースを見た感じ、僅かにadd_field関数など扱いが異なってます。

0Like

Your answer might help someone💌