启用处理获取列标题的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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 17e1c2c8eca1b9457e066fc45b9e649010a6a04cf48dca60b58d41919d582ea3 |
|
MD5 | af46a4566c1f79647cfc355d63dbd7b3 |
|
BLAKE2b-256 | 14fb6d3b0b8f5fa038e298778b377408805a67c6750f00915cfbcc33f281c6a1 |