首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >模拟数据库结构

模拟数据库结构
EN

Stack Overflow用户
提问于 2013-06-25 14:05:31
回答 3查看 154关注 0票数 0

我正在处理一个重命名数据库中大多数文件夹的脚本。材料是如此敏感,以至于我真的不喜欢在原始数据库中玩弄脚本的想法。我喜欢只复制结构的想法,并用模拟结构测试脚本。

在一夜睡眠不佳后得到了这个想法,这是可行的吗?:)

在unix中使用python

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-25 14:19:34

下面的代码将把a的结构复制到b

代码语言:javascript
复制
import os

def dup_structure(src, dst):
    os.makedirs(dst)
    for p, ds, fs in os.walk(src):
        for dn in ds:
            dp = os.path.relpath(os.path.join(p, dn), src)
            os.makedirs(os.path.join(dst, dp))
        #for fn in fs:
        #    fp = os.path.relpath(os.path.join(p, fn), src)
        #    with open(os.path.join(dst, fp), 'wb'): pass

dup_structure('a', 'b')

  • 确保目录b在运行前不存在。
  • 此代码不会重复的文件。如果您想要重复的文件,请取消注释注释行。

重命名目录时,应从下往上遍历目录。

票数 2
EN

Stack Overflow用户

发布于 2013-06-25 14:26:23

我建议您将这段shell脚本作为文件夹重构程序的测试设置的一部分

代码语言:javascript
复制
cd /mytest/; find /folder/with/database -type d -print0 | xargs -0 mkdir -p 

工作原理: chdir到你想要空文件夹拷贝到的目标

find命令使用“活动”数据库的绝对路径

type d仅为目录

print0意味着可以安全地处理包含空格的名称

xargs执行与在标准输入中输入的每个参数一起给出的命令

mkdir的-p参数并不是必须的,但它会在目标上创建不存在的文件夹

如果这是我的项目,我每次运行自动化测试套件时都会这样做

票数 0
EN

Stack Overflow用户

发布于 2013-06-25 14:29:47

即使使用标准的unix实用程序也可以做到这一点,而无需编程。只需创建目录结构的tar归档文件,并根据需要将其扩展到任意位置(将a的结构复制到b):

代码语言:javascript
复制
cd a
find . -type d | xargs tar --no-recursion -r -f ../a.tar
cd ..
mkdir b
cd b
tar xf ../a.tar
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17290206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档