小编Kau*_*rin的帖子

Python tarfile和排除

这是Python文档的摘录:

如果给出exclude,则它必须是一个带有一个filename参数并返回一个布尔值的函数.根据此值,相应文件将被排除(True)或添加(False).

我必须承认,我不知道这意味着什么.

此外:

自2.7版本不推荐使用:不推荐使用exclude参数,请改用filter参数.为了获得最大的可移植性,filter应该用作关键字参数而不是位置参数,以便在最终删除排除时不会影响代码.

好的......以及"过滤器"的定义:

如果指定了filter,则它必须是一个获取TarInfo对象参数并返回已更改的TarInfo对象的函数.如果它返回None,则将从归档中排除TarInfo对象.

... 回到原点 :)

我真正需要的是一种将数组(或":"分隔字符串)的排除传递给tarfile.add的方法.

如果你试图解释PyDocs中的那些段落,我不介意.

PS:

这只是我的想法:

  • 创建源目录内容列表的数组
  • 弹出排除
  • 在左边的单个数组成员上执行tar.add

但是,我希望它以更加文明的方式完成

python tarfile

5
推荐指数
1
解决办法
4974
查看次数

阻止BASH评估变量中的文件名

#!/bin/bash
#trash.sh

$TRASHDIR=$HOME/trash 
#Does not exist yet, i have loops further in 
#the script to check if the dir exists and to create it if not
echo $TRASHDIR
#I have ommited the rest of the script, 
#because this is where I have the problem
Run Code Online (Sandbox Code Playgroud)

我们运行这个:

./trash.sh  
./trash.sh: line 3: =/home/someuser/trash: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如何在没有bash评估的情况下将此文件名存储在变量中?另外:我如何在以后的测试中使用此变量?

if [ -e $TRASHDIR ]
then
  echo stuff here
fi
Run Code Online (Sandbox Code Playgroud)

variables bash

0
推荐指数
1
解决办法
138
查看次数

标签 统计

bash ×1

python ×1

tarfile ×1

variables ×1