我正在编写一个脚本来备份各种不同的文件.我想要做的是存储有关备份的元信息.目前我正在使用文件名,例如:
backups/cool_file_bkp_c20120119_104955_d20120102
Run Code Online (Sandbox Code Playgroud)
Where c表示文件创建日期时间,d表示"数据时间",表示cool_file实际包含的内容.我目前使用"数据时间"的原因是后来的备份可能是由同一个文件组成的,在这种情况下,我知道我可以安全地替换相同"数据时间"的先前备份,而不会丢失任何信息.
这似乎是一种糟糕的做事方式,但它似乎确实具有非os依赖性的好处.有没有更好的办法?
仅供参考:我使用Python编写备份创建脚本,目前需要在Windows XP,2003和Redhat Linux上运行.
编辑:解决方案:从下面的答案,我推断文件的元数据不是以标准方式广泛支持.鉴于我的目标是将元数据与文件紧密耦合,似乎将文件与元数据文本文件一起存档是可行的方法.
目前我在我的代码中这样做:
logger = logging.getLogger(__name__)
logger.info("something happened")
Run Code Online (Sandbox Code Playgroud)
然后在我的主要脚本的顶部我这样做:
logging.basicConfig(level=logging.INFO)
Run Code Online (Sandbox Code Playgroud)
问题是消息太多了.有没有办法将它限制在一个或几个不同的记录器?
但是,当我运行最后一步时,我得到:
cammil@cammil-desktop:~$ neo4j start
neo4j: command not found
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
如何查找列名与模式匹配的所有表或视图.
模式是一个简单的LIKE %abcd%模式,而不是正则表达式.
查询或查询应返回视图和表.
如果我跑
SELECT *
FROM my_table;
Run Code Online (Sandbox Code Playgroud)
列顺序是可预测的吗?
决定这个顺序的 postgres 的底层设计方面是什么?
我正在尝试使用 isort 自动修复导入订单。当我pre-commit run --files=myfile.py正确运行时,它会更新我的导入(通过在已知的第三方导入和内部包导入之间添加一行)。但是,当我尝试提交此操作时,预提交将导致提交失败,然后删除第三方导入和内部包之间的行。
我尝试known_third_party在setup.cfg和 in中设置设置.isort.cfg,并且得到相同的行为。但是,我怀疑配置本身不是问题,因为当我运行时它显然被正确识别pre-commit run ...。那么为什么pre-commit run使用了正确的配置,但在实际提交时,似乎忽略了它呢?
如何让挂钩尊重实际提交的配置?
配置是:
.pre-commit-config.yaml
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.2.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
- repo: https://github.com/psf/black
rev: 21.12b0
hooks:
- id: black
- repo: https://github.com/pycqa/isort
rev: 5.10.1
hooks:
- id: isort
name: isort (python)
Run Code Online (Sandbox Code Playgroud)
.isort.cfg
[settings]
known_third_party=django
Run Code Online (Sandbox Code Playgroud)
附加信息:子目录配置可能导致此行为
我尝试过移动配置文件,现在问题似乎已经解决。我的存储库包含多个应用程序的源代码,其中之一是 python django 应用程序。配置文件位于该子目录中。我已将配置文件移至整个项目的根目录,现在这个特定问题已解决。我想知道是否有一种方法可以进行预提交或排序来识别子目录中的配置,但我将把它留给另一个问题。
为什么会引发错误:
o = object()
o.i = 1
Run Code Online (Sandbox Code Playgroud)
但这不是:
class A(object):
pass
a = A()
a.i = 1
Run Code Online (Sandbox Code Playgroud)
?
假设列表仅包含可哈希对象.
顺便说一下,我不确定这个问题是否有意义,因为在复杂性和学术性方面,我是一个完整的菜鸟.
以下是Haskell教程中的示例
instance Monad Maybe where
return x = Just x
Nothing >>= f = Nothing
Just x >>= f = f x
fail _ = Nothing
Run Code Online (Sandbox Code Playgroud)
但是,我对这Just x...条线很困惑.结果不应该是monad吗?我期待这条线
Just x >>= f = Just (f x)
Run Code Online (Sandbox Code Playgroud) 假设我有一个按层次结构构建的对象表:
A
|--B
|--C
| +--D
+--E
Run Code Online (Sandbox Code Playgroud)
它们存储在“父子”表中:
parent child
A B
A C
C D
A E
Run Code Online (Sandbox Code Playgroud)
我如何查询它以获得上面定义的结构?我想我需要一些能产生这样的信息的东西:
object full_path
A NULL
B A
C A
D A.C
E A
Run Code Online (Sandbox Code Playgroud)
我不知道如何处理嵌套超过一层的对象。感觉我可能需要迭代表(不知道这在 SQL 中是否可行),或者使用我以前从未遇到过的某种查询。
附加信息:
GROUP BY我可以通过简单的and语句将多父结构转换为单父结构MIN。python ×5
linux ×2
python-2.7 ×2
attributes ×1
database ×1
file ×1
filesystems ×1
git ×1
graph ×1
haskell ×1
hierarchy ×1
isort ×1
logging ×1
monads ×1
mysql ×1
neo4j ×1
object ×1
postgresql ×1
pre-commit ×1
teradata ×1
ubuntu ×1
windows ×1