首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何让多个用户在同一个文件上工作?

如何让多个用户在同一个文件上工作?
EN

Stack Overflow用户
提问于 2019-10-06 16:25:39
回答 2查看 52关注 0票数 0

在python中,可以从不同的用户操作同一文件吗?让我说得更清楚一些:我想做一个可以读取数据库的软件(我使用的是pandas)。该软件将在不同的计算机上同时使用,并且它将读取和写入相同的数据库。那么,有没有一种工具可以持续检查数据库中最近更新的语音,并在每个用户的RAM中刷新它?或者有更聪明的方法来达到这个目的呢?

非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2019-10-06 16:36:24

任何与ACID兼容的数据库(在这种情况下,“隔离”特性是关键)都会提供这些特性。一个很好的免费数据库是PostgreSQL,另一个选择(如果您可以访问它的话)是MS-SQL Server。

您确实希望使用符合ACID的数据库来完成此任务,而不是自己处理此问题。

这个问题已经存在了几十年,并且已经得到了解决。如果你想处理磁盘上的普通文件,有太多的边缘情况会让你的生活变得非常困难。

另外,pandas非常有能力从这样的数据库中读取数据。

一些基础知识

考虑到这个问题的表达方式,我冒然假设这对你来说可能是一个新领域,所以这里有一些“最小”的指导来帮助你入门。但你必须阅读的一些东西是:

  • SQL -结构化查询语言-用于从数据库表中提取数据。在将数据转换为数据帧之前,您可以使用它对数据进行预处理和预过滤。这将减少计算机和网络上的负载。根据数据大小,这将减少正在使用的数据库的负载considerably.
  • The文档:最重要的是,存在哪些数据类型以及安装说明。

假设您从CSV文件开始,下面是一个简单的示例。

准备数据库

您首先需要将CSV数据加载到数据库中。出于本例的考虑,我将使用PostgreSQL。其他数据库将使用不同的语法来加载数据。

我也会非常自由地选择数据类型,我不会使用“主键”。但这只是为了让它尽可能简单。你的应该为你的最终解决方案阅读这些主题!

因此,让我们假设以下关于DB的信息(请参阅下面关于如何使用docker运行测试实例的附录):

  • 它运行在主机"192.0.2.1“上,使用端口”5432“
  • 数据库名(每个数据库服务器可以运行多个数据库)用户名是"jdoe”,密码是"supersecret"

此外,让我们使用一个免费的数据文件来发挥作用。让我们使用some AirBNB data (这是在撰写本文时出现在kaggle上的第一个东西)。

然后,我们可以使用命令行客户端psql来连接、创建表和加载数据文件:

连接中

在命令行上,运行以下命令

代码语言:javascript
运行
AI代码解释
复制
psql postgres://jdoe:supersecret@192.0.2.1:5432/stackoverflow

它包含上面列出的值。有些可以省略(如密码或默认端口),但为了说明的目的,我将它们保留了下来。

现在,您可以运行SQL查询来创建新表。这类似于数据框,保存所有用户的数据。此查询还定义了表名、列名和数据类型:

创建表并加载数据

显然,该表只需要创建一次。数据加载取决于您的需求。使用SQL,每个用户还可以在表中插入、修改和删除数据。

代码语言:javascript
运行
AI代码解释
复制
CREATE TABLE mydata (
    id INTEGER,
    name TEXT,
    host_id INTEGER,
    host_name TEXT,
    neighbourhood_group TEXT,
    neighbourhood TEXT,
    latitude FLOAT,
    longitude FLOAT,
    room_type TEXT,
    price INTEGER,
    minimum_nights INTEGER,
    number_of_reviews INTEGER,
    last_review DATE,
    reviews_per_month FLOAT,
    calculated_host_listings_count INTEGER,
    availability_365 INTEGER
);

现在我们可以加载数据(从kaggle data-set):

代码语言:javascript
运行
AI代码解释
复制
\copy mydata FROM AB_NYC_2019.csv WITH CSV HEADER;

详情请参见COPY

在此之后,我们可以退出postgres控制台并返回到Python/Pandas。

熊猫

首先,确保您有一个能够连接到psycopg2-binary等postgres的Python库。

导入:

代码语言:javascript
运行
AI代码解释
复制
import pandas
import psycopg2

连接和阅读:

代码语言:javascript
运行
AI代码解释
复制
connection = psycopg2.connect("postgresql://jdoe:supersecret@192.0.2.1/stackoverflow")
df = pandas.read_sql("SELECT * FROM mydata", connection, index_col="id")

附录-在docker中运行postgres

可以使用以下命令启动新的docker实例:

代码语言:javascript
运行
AI代码解释
复制
docker run \
    --rm \
    --name pg-docker \
    -e POSTGRES_PASSWORD=docker \
    -p 5432:5432 \
    postgres

这将创建一个名为postgres的数据库,用户postgres和密码docker都可以访问该数据库。这些值可用于上述示例,当然不应在生产中使用。

票数 1
EN

Stack Overflow用户

发布于 2019-10-06 16:34:45

检查这一点,https://pandas.pydata.org/pandasdocs/stable/reference/api/pandas.DataFrame.to_sql.html pandas with SQL将是一个很好的解决方案

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58259175

复制
相关文章
TKE容器实现限制用户在多个namespace上的访问权限(上)
kubernetes应用越来越广泛,我们kubernetes集群中也会根据业务来划分不同的命名空间,随之而来的就是安全权限问题,我们不可能把集群管理员账号分配给每一个人,有时候可能需要限制某用户对某些特定命名空间的权限,比如开发和测试人员也可能需要登录集群,了解应用的运行情况,查看pod的日志,甚至是修改某些配置。这时候,我们可以通过创建受限的kubeconfig文件,将该config分发给有需要的人员,让他们能通过kubectl命令实现一些允许的操作
chen1900s
2020/07/23
2.1K0
如何让BYOE在云中为企业工作
目前,在云中使用用户自己的加密产品已变得更为普遍。专家Ed Moyle在本文中讨论了BYOE的优缺点,以及用户在正式实施前所需了解的内容。 花几分钟时间与大多数技术人员讨论下公共云服务,你很快就会得到一个肯定的结论:从安全性的角度来看,云应用具有较大的挑战性。在一定程度上,这是云本身的固有特性决定的。让云变得有价值和强大的原因之一就是先进技术基础的商品化,这就意味着技术堆栈一定层面以下的一切(具体层面高低因云模式不同而不同)在客户眼中就是一个黑盒。这是非常强大的,因为它意味着客户可以重定向资源,否则它将
静一
2018/03/27
3.2K1
如何让BYOE在云中为企业工作
Python+pandas把多个DataFrame对象写入Excel文件中同一个工作表
在使用Python+pandas进行数据分析和处理时,把若干结构相同的DataFrame对象中的数据按顺序先后写入同一个Excel文件中的同一个工作表中,纵向追加。
Python小屋屋主
2021/07/19
5.9K0
vim打开多个文件、同时显示多个文件、在文件之间切换 打开多个文件:
1.vim还没有启动的时候: 在终端里输入 vim file1 file2 ... filen便可以打开所有想要打开的文件 2.vim已经启动 输入 :open file 可以再打开一个文件,并且此时vim里会显示出file文件的内容。
sunsky
2020/08/19
15.6K0
如何让 Python 脚本在工作日运行?
你好,我是征哥,最近用 Python 写了个每日签到答题的脚本,想让它在工作日每天运行,于是我找到了这个三方库-chinesecalendar。
somenzz
2022/05/24
3.3K0
如何让 Python 脚本在工作日运行?
TKE容器实现限制用户在多个namespace上的访问权限(下)
集群侧的配置见 TKE容器实现限制用户在多个namespace上的访问权限(上)
chen1900s
2020/07/23
1.5K0
Flagger 在 Kubernetes 集群上是如何工作的?
通过前面一节的 Flagger基本学习,这节学习它的工作原理,以帮助加深理解应用!
philentso
2022/12/26
2.3K0
如何把Electron做成一个Runtime,让多个应用共享同一个Electron
下面我就说一下我的思路: (以下内容以Windows平台为基础,Mac平台和Linux平台还得去调查一下,才能确定是否可行)
liulun
2021/12/24
1.8K0
关于多个Jenkins实例共享同一个工作目录的问题
jenkins启动之后会在home目录下生成一个".owner"文件,里面标识了本次jenkins实例的唯一标识,文件格式如下:
特特
2022/02/10
1.3K0
在同一个系统里使用多个版本的软件
如果你有几房姨太太的话,那么想让她们和平共处,多半是痴人说梦。对程序员而言,虽然他们不会有娶几个老婆的好运气,但是很可能会遇到在同一个系统里使用多个版本的软件的情况,一旦处理不好,同样会焦头烂额。
LA0WAN9
2021/12/14
1.2K0
同一个 gitlab-ci 文件能使用多个 runner 吗?
在 Gitlab CI 中,Runner 是 Job 的执行器, 也就是说 Job 的运行环境, 就是 Runner 的环境。
老麦
2022/12/24
2.9K0
同一个 gitlab-ci 文件能使用多个 runner 吗?
在 Linux 上如何挂载 ISO 格式文件
一个 ISO 文件通常是一个压缩文件,里面包含了一张 CD 或者一张 DVD 完整镜像。例如,大部分操作系统 像 Windows, Linux, 和 macOS 都是以 ISO 镜像的方式发布的。
雪梦科技
2020/05/11
23.4K0
在 Linux 上如何挂载 ISO 格式文件
「10」用户-用户画像如何建设(上)
3、我们在学习工作中,有疑惑或者问题时,会想寻求答案,这种场景下,我们的需求是什么?
巡山猫说数据
2021/05/18
7450
「10」用户-用户画像如何建设(上)
IDEA在同一工作空间,显示多个项目
IDEA 的工作空间,默认一个项目,多模块。如何在同一个工作空间,同时显示多个项目呢?
JavaEdge
2023/03/02
3.8K0
IDEA在同一工作空间,显示多个项目
快速合并多个CSV文件或Excel工作簿
合并多个CSV文件、文本文件、Excel工作簿等操作是我们日常工作中经常碰到的事,如果一个一个文件复制粘贴,费时费力又容易出错。当然,可以使用VBA来解决,但前提是你必须懂VBA。这里有一个简单快速的方法,使用Power Query。
fanjy
2023/08/30
1.7K0
快速合并多个CSV文件或Excel工作簿
GPU底层优化 | 如何让Transformer在GPU上跑得更快?
图 4:Beam Search Decoding (Decoder + Beam Search) 流程图
计算机视觉研究院
2021/02/24
1.8K0
GPU底层优化 | 如何让Transformer在GPU上跑得更快?
在 CentOS 上如何将用户添加到 Sudoers
sudo是一个命令行工具,它被设计为允许用户以其他用户(默认是 root 用户)身份去运行命令。
雪梦科技
2020/05/11
11.7K0
在 CentOS 上如何将用户添加到 Sudoers
在shell脚本里面给用户多个选择
我们的转录组数据分析流程的脚本当然并不能是每次都对每个项目运行全部的环节的每个步骤,通常情况下就是选择性的跑几个步骤即可。有一些小伙伴也许会把流程里面的每个步骤拆分成为多个脚本,这样就绕过选择了。但如果全部是拆分,我们脚本管理起来难度很大。
生信技能树
2022/01/10
8320
点击加载更多

相似问题

如何让多个用户在GitHub的同一个特性中工作?

20

如何让UpdatePanel工作在多个按钮上?

11

如何让GUI上的多个按钮工作

214

如何管理多个用户在同一个屏幕上工作?

41

如何让用户在Android上的Firebase上跨多个会话登录?

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档