Python获取access表字段名

简介:

以下所有代码Python2.7、Python3.4均可用。

一、win32.com

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#author: walker
#date: 2015-09-25
#summary: 打印指定access文件、指定表的所有字段
 
import  win32com.client
 
def  PrintColumns_win32com(pathfile, tablename):
     conn  =  win32com.client.Dispatch(r 'ADODB.Connection' )
     DSN  =  'PROVIDER=Microsoft.ACE.OLEDB.12.0;DATA SOURCE='  +  pathfile  +  ';'
     #DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=' + pathfile + ';'
     conn. Open (DSN)
       
     rs  =  win32com.client.Dispatch(r 'ADODB.Recordset' )
     rs.Cursorlocation  =  3
     sql  =  'SELECT TOP 1 * FROM '  +  tablename
     print (sql)
     rs. Open (sql, conn)
     for  in  range ( 0 , rs.Fields.Count):
         print (rs.Fields[i].Name  +  ' - '  +  str (rs.Fields[i]. Type +  ' - '  +  str (rs.Fields[i].DefinedSize))
       
     conn.Close()

关于字段类型(Type):3为数字,202为文本,203为备忘。

相关阅读:

0、win32com下载

1、Python操作Access数据库基本操作步骤分析

2、ADO获取表的所有字段名


二、pyodbc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#encoding=utf-8
#author: walker
#date: 2015-09-25
#summary: 打印指定access文件、指定表的所有字段
 
import  pyodbc
 
def  PrintColumns_pyodbc(pathfile, tablename):
     connStr  =  r 'Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=%s;'  %  pathfile
     print ( 'connStr:'  +  connStr)
     conn  =  pyodbc.connect(connStr)
     
     cur  =  conn.cursor()
     
     for  row  in  cur.columns(table = tablename):
         print (row.column_name)
     
     cur.close()
     conn.close()

相关链接:

1、pyodbc的pypi主页

2、pyodbc的文档


三、pypyodbc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#encoding=utf-8
#author: walker
#date: 2015-09-25
#summary: 打印指定access文件、指定表的所有字段
 
import  pypyodbc
 
def  PrintColumns_pypyodbc(pathfile, tablename):
     connStr  =  r 'Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=%s;'  %  pathfile
     print ( 'connStr:'  +  connStr)
     pypyodbc.lowercase  =  False   #是否将字段名转为小写
     conn  =  pypyodbc.connect(connStr)
      
     cur  =  conn.cursor()
     cur.execute( 'SELECT TOP 1 * FROM '  +  tablename)
     
     cnt  =  0
     for  tup  in  cur.description:
         print (tup[ 0 ])
         cnt  + =  1
     print ( 'cnt:'  +  str (cnt))
      
     cur.close()
     conn.close()

相关链接:

1、pypyodbc的pypi主页

2、pypyodbc的入门教程

3、未找到官方文档


四、pyodbc与pypyodbc取值的区别

(1)、在select指定字段时


row[idx] row.field row['field'] row.get('field')
pyodbc  √  √  ×  ×
pypyodbc  √  ×  √  √

(2)、在select *时


row[idx] row.field row['field'] row.get('field')
pyodbc  √  ×  ×  ×
pypyodbc  √  ×  √  √


相关阅读:

1、常用sql语句(备忘) 

2、获取Access数据库中的用户表名


*** walker * Updated 2015-09-25 ***

本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1553180如需转载请自行联系原作者

RQSLT
目录
打赏
0
0
0
0
91
分享
相关文章
使用Python批量实现文件夹下所有Excel文件的第二张表合并
使用Python和pandas批量合并文件夹中所有Excel文件的第二张表,通过os库遍历文件,pandas的read_excel读取表,concat函数合并数据。主要步骤包括:1) 遍历获取Excel文件,2) 读取第二张表,3) 合并所有表格,最后将结果保存为新的Excel文件。注意文件路径、表格结构一致性及异常处理。可扩展为动态指定合并表、优化性能、日志记录等功能。适合数据处理初学者提升自动化处理技能。
289 1
如何使用 Python 统计分析 access 日志?
【8月更文挑战第14天】如何使用 Python 统计分析 access 日志?
99 0
如何使用 Python 统计分析 access 日志?
【Azure 应用服务】使用Python Azure SDK 来获取 App Service的访问限制信息(Access Restrictions)
【Azure 应用服务】使用Python Azure SDK 来获取 App Service的访问限制信息(Access Restrictions)
Python标准库中的`str`类型有一个`translate()`方法,它用于替换字符串中的字符或字符子集。这通常与`str.maketrans()`方法一起使用,后者创建一个映射表,用于定义哪些字符应该被替换。
Python标准库中的`str`类型有一个`translate()`方法,它用于替换字符串中的字符或字符子集。这通常与`str.maketrans()`方法一起使用,后者创建一个映射表,用于定义哪些字符应该被替换。
函数计算产品使用问题之要使用Python写入时序数据到阿里云表格存储时序表,该怎么办
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
116 0
Python基础教程(第3版)中文版 第二章列 表和元组(笔记)
Python基础教程(第3版)中文版 第二章列 表和元组(笔记)
使用Python的Pandas库进行数据透视表(pivot table)操作
使用Python Pandas进行数据透视表操作包括:安装Pandas库,导入库,创建或读取数据,如`pd.DataFrame()`或从文件读取;然后使用`pd.pivot_table()`创建透视表,指定数据框、行索引、列索引和值,例如按姓名和科目分组计算平均分;查看结果通过打印数据透视表;最后可使用`to_csv()`等方法保存到文件。这为基础步骤,可按需求调整参数实现更多功能。
503 2

热门文章

最新文章

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等