启用csv、xls和xlsx文件的句柄获取列标题

pyheaderfile的Python项目详细描述


pyheaderfile帮助处理扩展名为csv、xls和xlsx的文件。

这个项目的目标是通过头读取文件(列名)。使用此模块,我们可以使用同一接口处理csv、xls和xlsx文件。因此,我们可以转换扩展名、删除行中的值、更改excel文件的单元格样式、读取特定的excel文件、读取特定的单元格并仅读取一些标题。

安装

pip install pyheaderfile

如何使用

首先需要导入模块:

from pyheaderfile import Csv, Xls, Xlsx, guess_type

每一个都将在下面解释。

CSV类

读取csv

默认编码是utf8,但您可以更改它。默认strip为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'])

写入dict 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,则可以传递所有可能的kwarg并键入guess-right kwargs:

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

只有当文件名是csv文件时,才猜输入send encode kwarg to instance。

而对于一个超级mbo,你可以猜测和转换一切!

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/')

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java中char的用途   swing修复,以便显示可以同时显示十进制数和整数   java给定一个场景,找到拥有的JFXPanel   java JPA 2标准获取路径导航   java如何用JUnit测试这个类?   JSF中的java请求作用域   Spring云Zuul代理背后的java Spring OAuth授权服务器   java限制聚合返回的存储桶大小   java如何在安卓应用程序中请求超级su权限   防止超级关键字的java Checkstyle规则   java 安卓。应用程序。应用程序无法强制转换到安卓。应用程序。在回收器适配器中使用FragmentManager时的活动   使用Java的Twitter广告API   切换到4.0.1版本后,java“JavaMailSenderImpl无法解析为类型”   java没有getter方法可用于名称下bean的属性   java 0/1背包堆空间   java我无法使用断点进行调试   Jar文件名表单java代码   java调用从扩展活动的MainActivity类扩展片段的类片段