我想使用Perl的Archive :: Tar模块备份内容。我打算使用Archive::Tar
来备份文件和文件夹以及文件夹中的文件。在我当前的代码中,前两个有效,但第三个无效。
use strict; use warnings;
use Archive::Tar;
use Tk;
my $mw = MainWindow -> new;
$mw -> Label ( -text => "Please type the files you wish to backup, separated by spaces." ) -> pack;
my $inputEntry = $mw -> Entry ( -width => 30 );
$inputEntry -> pack;
$mw -> Button ( -text => "Compress!", -command => sub { compress() } ) -> pack;
MainLoop;
sub compress {
my $input = $inputEntry -> get;
my @input;
unless ( $input !~ m/ / ) {
@input = split ( m/ /, $input );
} else {
@input = ( $input );
}
Archive::Tar -> create_archive ( "TEST.tbz", COMPRESS_BZIP, @input )
}
答案 0 :(得分:2)
您的重现步骤尚不清楚,更多示例可能会有所帮助,但您的脚本似乎对我来说很好用。我能够将文件夹和文件以及文件夹中的文件成功添加到存档中。对于文件夹中的每个文件,我必须键入整个相对路径,例如。 “ sample / file1.txt”。
您可能正在寻找一种自动在文件夹中添加文件的方法。这样的事情就可以解决问题:
serializer.py
from rest_framework import serializers
from django.contrib.auth.models import User
from .models import Invoice
class CreateUserSerializer(serializers.ModelSerializer):
class Meta:
model = Userfields = ('id', 'username', 'password')
extra_kwargs = {'password': {'write_only': True}}
def create(self, validated_data):
user = User.objects.create_user(validated_data['username'],
None,
validated_data['password'])
return user
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = "__all__"
我认为仍然存在一些问题,例如:该脚本似乎在文件/文件夹名称中带有空格的情况下失败,即使被转义或引用也是如此。