跳转到主要内容

启用处理获取列标题的csv、xls和xlsx文件

项目描述

PyHeaderFile帮助处理具有csv、xls和xlsx扩展名的文件。

本项目旨在通过列名(列标题)读取文件。使用此模块,我们可以使用相同的接口处理Cvs、Xls和Xlsx文件。因此,我们可以转换扩展名、删除行中的值、更改Excel文件的单元格样式、读取特定的Excel文件、读取特定的单元格以及只读取一些标题。

安装

pip install pyheaderfile

如何使用

首先,您需要导入模块

from pyheaderfile import Csv, Xls, Xlsx, guess_type

以下将分别解释每个模块。

csv类

读取csv

默认编码为utf8,但您可以更改它。默认删除为false,但类可以自动删除每个值

file = Csv(name=’file.csv’, encode='latin1', strip=True)
for row in file.read():
    print row

设置标题

file.header = ['col1', 'col2','col3']

创建csv

file = Csv(name='filename.csv', header=['col1','col2','col3'])

写入列表csv

file.write(['col1','col2','col3'])

写入字典csv

file.write(dict(header=value))

保存文件

file.save()

xls类

读取xls

您也可以自动从xls文件中删除值,但默认值为False

file = Xls(name=’file.xls’, strip=True)
for row in file.read():
    print row

设置标题

file.header = ['col1', 'col2','col3']

创建xls

file = Xls(name='filename.xls', header=['col1','col2','col3'])

写入列表

file.write(['col1','col2','col3'])

写入字典

file.write(dict(header=value))

保存文件

最后,您可以将文件保存

file.save()

xlsx类

读取

您也可以从xlsx文件中删除值

file = Xlsx(name=’file.xlsx’, strip=True)
for row in file.read():
    print row

设置标题

file.header = ['col1', 'col2','col3']

创建文件

file = Xlsx(name='filename.xlsx', header=['col1','col2','col3'])

写入列表

file.write(['col_val1','col_val2','col_val3'])

写入字典

file.write(dict(header=value))

保存文件

您也可以将文件保存到另一个路径

file.save('/path/to/new/file/')

或者,您可以使用close()保存,它强制使用相同的路径。

file.close()

内存中工作

写入

对象可以存储在内存中,然后保存到磁盘或简单地留在内存中。

from StringIO import StringIO
mem_obj = StringIO()
xls = Xls(mem_obj, header=['first', 'second'])
xls.write('1 guy', '2 guys')
xls.save()  # or you can xls.save('/path/to/file/')

当你保存文件时,你可以检索StringIO内容或将内容保存到指定目录的磁盘上。在这种情况下,内容将以“default.xls”的名称保存。

读取

与写入类似,您可以从内存中读取对象。因此,在您保存内容后,您可以再次读取它。

from StringIO import StringIO
mem_obj = StringIO()
xls = Xls(mem_obj, header=['first', 'second'])
xls.write('1 guy', '2 guys')
xls.save()
# here use new object
new_xls = Xls(mem_obj)
for row in new_xls:
    print row # should echo {'first': '1 guy', 'second': '2 guys'} then next rows

技巧

修改扩展名、名称和标题

您可以使用此方法更改文件名和标题。

q = Xls()
x = Xlsx(name='filename.xlsx')
x.name = 'ugly file name'
x.header = ['col1', 'col2','col3']
q(x)

请注意!您不能使用StringIO或其他内存存储来更改名称。您将得到一个错误。

猜测文件类型

要猜测需要打开哪个类,只需使用

filename = 'test.xls'
my_file = guess_type(filename)

如果您正在处理Csv或Xls,您可以传递所有可能的kwargs并猜测正确kwargs

my_file = guess_type(filename, encode='latin1', strip=True)

只有当文件名是Csv文件时,guess_type才会将encode kwarg发送到实例。

对于SUPERCOMBO,您可以直接猜测和转换所有内容!

my_file = guess_type(filename, **kwargs)
convert_to = Xls()
my_file.name = 'beautiful_name'
my_file.header = ['col1', 'col2','col3']
convert_to(my_file) # now your file is a xls file ;)
convert_to.save('/my/other/path/')

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

pyheaderfile-0.4.0.tar.gz (10.0 kB 查看哈希值)

上传时间

支持者: