如何在python程序中查看sqlite3某数据库中的表名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在python程序中查看sqlite3某数据库中的表名相关的知识,希望对你有一定的参考价值。

sqlite3数据库里表的信息存储在了一个名为sqlite_master的表中

因此可以通过这条语句来查看数据库中所有表的名称

SELECT name FROM sqlite_master WHERE type='table';

下面是Python的用法

con = sqlite3.connect('database.db')
cursor = con.cursor()
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
print(cursor.fetchall())

参考技术A SELECT name FROM sqlite_master WHERE type='table' ORDER BY name; 如果你在sqlite行命令下,你可以直接使用 .tables 或 .schema 命令来得到完整的数据库集包括表s和索引s. 这两个命令支持匹配符。 如果在其它宿主程序中例如 C/C++等,你可以...

如何将文档文件保存到 iOS 中的 SQLite 数据库,以便稍后在程序中查看它们?

【中文标题】如何将文档文件保存到 iOS 中的 SQLite 数据库,以便稍后在程序中查看它们?【英文标题】:How can I save document files to the SQLite Database in iOS to view them later in the program? 【发布时间】:2014-01-09 21:42:33 【问题描述】:

我正在编写的代码有问题。

我正在编写一个 iOS 程序(我是 iOS 菜鸟),它基本上需要我使用快速浏览框架来查看 iPhone 上的一些文档(*.doc、*.ppt、*.pdf 等)它们存储在数据库中(核心数据 - SQLite,没有外部)。我需要以某种方式添加文件,但由于 iOS 并没有真正允许我浏览它的文件系统,我无法在数据库中找到并保存我需要的文档。在我从数据库中获取这些文档之前,这有点阻止我需要做的所有其他事情。 (设置列出文件和文件详细信息的表格视图等)

这是一个班级项目,所以它不需要完美的条件,我只需要能够在我展示项目时浏览一些文档。我可以在编码时一次添加我要使用的所有文档,并且在演示期间使用该程序时我不需要添加任何新文件。如果我不需要的话,我不想让它变得更复杂。就像使用已保存的文件连接到外部数据库并使用 php 缓冲区页面连接到该数据库或类似的东西。我没有执行该 php 文件所需的服务器系统。我希望在手机内部完成此操作。

目前我能想到的解决方案:

从互联网上随机获取一些办公文件并将它们保存到数据库中。以后再用。 创建一些办公文件的图像扫描,并通过使用扫描的图像而不是实际文档来“作弊”。

如果有人能告诉我另一种更简单的方法来处理这个问题,我将不胜感激。请记住,虽然我有 Java 和 C# 的编程背景,但我仍然是一名 iOS 菜鸟,只是勉强从零开始。所以很可能我不知道iOS默认提供的东西,我只是白费力气。

我想就是这样,我希望我没有忘记任何事情。如果您需要更多详细信息,我将在这里,我几乎可以立即提供。提前感谢大家的帮助。

【问题讨论】:

【参考方案1】:

听起来 NSFileManager 会帮助你。

如果您将文档放入项目树中,它们将可供您的应用使用。使用 NSFileManager 将它们复制到应用程序的 Documents 文件夹中:

- (void)placeBundleFileInDocuments:(NSString *)filename

    NSFileManager *fileManager = [NSFileManager defaultManager];

    NSString *bundlePath = [[NSBundle mainBundle] pathForResource:[[filename lastPathComponent] stringByDeletingPathExtension] ofType:[filename pathExtension]];
    NSString *documentsFolderPath = [NSString stringWithFormat:@"%@/", [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]];
    NSString *path = [documentsFolderPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", filename]];

    if ([fileManager fileExistsAtPath:path])
        return;

    NSError *error = nil;
    [fileManager copyItemAtPath:bundlePath toPath:path error:&error];
    if (error) 
        NSLog(@"Unable to copy file (%@).", error.localizedDescription);
    

然后,您可以使用 NSFileManager 检索有关文件的详细信息。您可能会发现此方法很有用:

- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error

我希望这会有所帮助!

【讨论】:

非常感谢您的帮助,我会尽快尝试。它看起来真的可以解决我的问题。

以上是关于如何在python程序中查看sqlite3某数据库中的表名的主要内容,如果未能解决你的问题,请参考以下文章

Python内置数据结构操作VS sqlite3操作

python 如何访问加密的sqlite3数据库?

Python3教程:数据库模块(sqlite3,SQLite3)的运用

为啥字符串不等于 sqlite3 数据库中的文本值(Python)

如何通过连接到 sqlite3 数据库来制作可执行的 python tkinter 文件

如何使用我的 Python3 fbs 包打包 Sqlite3 数据库?