ドキュメントは、これがコマンドラインツールであることを強く示唆しており、Pythonインタプリタの内部からは使用しないことを強くお勧めします。あなたは、コマンドラインからcsvファイルにファイルを変換するために、このような何かを行うことができます(または、シェルスクリプトでそれをポップできます):
in2csv your_file.xlsx > your_new_file.csv
ファイルを読みたい場合は、単にこれを行う(それはです)あなたが持っているものに似ていますが、ちょうど使用ビルトインのPython、いかなる外部モジュールを必要としません:
with open('input.xlsx') as csvfile:
reader = csvfile.readlines() # This was the only line of your code I changed
# below is just to test whether the file could be accessed
for row in reader:
print(row)
それともos
モジュールを使用して、コマンドラインを呼び出すことができます。
# Careful, raw sys call. Use subprocess.Popen
# if you need to accept untrusted user input here
os.popen("in2csv your_file.xlsx > your_new_file.csv").read()
1 O上記のスニペットはおそらく必要なものですが、実際に罰を求めている場合は、in2csv
ファイルをインタープリタの内部から使用することができます。ここでは、あなたがそれをやって行くかもしれない方法です(私は見つけることができるドキュメントでは、このためのサポートがない、それはちょうど私が通訳してチャンスをうかがっです):
は
>>> from csvkit import in2csv
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name in2csv
>>> import csvkit
>>> help(csvkit)
Help on package csvkit:
NAME
csvkit
FILE
c:\python27\lib\site-packages\csvkit\__init__.py
DESCRIPTION
This module contains csvkit's superpowered alternative to the standard Python
CSV reader and writer. It can be used as a drop-in replacement for the standard
module.
.. warn::
Since version 1.0 csvkit relies on `agate <http://agate.rtfd.org>`_'s
CSV reader and writer. This module is supported for legacy purposes only and you
should migrate to using agate.
PACKAGE CONTENTS
cleanup
cli
convert (package)
exceptions
grep
utilities (package)
は、だから、csvkitから直接in2csvインポートすることはできません。 (PACKAGE CONTENTS
の下に記載されていないため)。しかし、少し狩りをすれば、csvkit.utilities
からパッケージにアクセスできることがわかります。しかし、それはここから悪化するだけです。上のように "狩猟を助ける"(インタープリタから助けを呼び出す)場合は、クラスがコマンドラインから使用されるように設計されています。それで、通訳者の中から使うのは本当にお尻の痛みです。ここでは、デフォルト(爆発で結果)を使用しようとしているの例です:
>>> from csvkit.utilities import in2csv
>>> i = in2csv.In2CSV()
>>> i.main()
usage: [-h] [-d DELIMITER] [-t] [-q QUOTECHAR] [-u {0,1,2,3}] [-b]
[-p ESCAPECHAR] [-z FIELD_SIZE_LIMIT] [-e ENCODING] [-S] [-H] [-v]
[-l] [--zero] [-f FILETYPE] [-s SCHEMA] [-k KEY] [--sheet SHEET]
[-y SNIFF_LIMIT] [--no-inference]
[FILE]
: error: You must specify a format when providing data via STDIN (pipe).
in2csv.pyモジュールを見てみると、あなたはそれがあなたがやりたいことを得るためにモンキーパッチにargs
を持っています通訳者の中から。繰り返しますが、これはインタプリタの内部から使用するようには設計されておらず、cmd行から呼び出されるように設計されています(args
は、それをcmd行から呼び出すと定義されています)。このようなことが起こったようですが、徹底的にテストしませんでした。
>>> from csvkit.utilities import in2csv
>>> i = in2csv.In2CSV()
>>> from collections import namedtuple
>>> i.args = namedtuple("patched_args", "input_path filetype no_inference")
>>> i.args.input_path = "/path/to/your/file.xlsx"
>>> i.args.no_inference = True
>>> i.args.filetype = None
>>> i.main()
ファイルを読み込もうとしていますか?またはそれをCSVに変換しますか?あなたがリンクしている文書から判断すると、それはコマンドラインユーティリティとして使われることになっているようです。 – mwm314
私はそれを変換しようとしています。ファイルがオープン/コンバートされているかどうかを調べるための読み込みラインがあります。 – Marcatectura
ドキュメントのようにコマンドラインから使えない理由がありますか?これは、Pythonライブラリとして使用するためのものではありません。 – mwm314