我在s3中有一个数据sr = ab / pt = 01 / pt = 02 / pt = 03其中有多个文件夹。 pt = 03下面包含所有数据。
var Courses = _Context.Classes
.Include(t => t.Teachers)
.Include(c => c.Courses)
.Include(s => s.ClassSchedule)
.OrderBy(t => t.Teachers.LastName)
.ThenBy(s => s.ClassSchedule.DayID)
.ThenBy(s => s.ClassSchedule.PeriodID)
.Select(p => new ClassDTO
{
TeacherId = p.teacherId,
FirstName = p.Teachers.FirstName,
LastName = p.Teachers.LastName,
Course = p.Courses.courseCode,
Section = p.classSection,
Room = p.roomId,
Students = 0,
Day = p.ClassSchedule.DayID,
Block = p.ClassSchedule.PeriodID,
ClassId = p.classId
})
.ToList();
我正在关注输出
`
old_bucket_name = 'bucket'
old_prefix = 'sr=ab/pt=01/pt=02/pt=03'
new_bucket_name = 'bucket'
new_prefix = old_prefix.split("=")[3].strip()
s3 = boto3.resource('s3')
old_bucket = s3.Bucket(old_bucket_name )
new_bucket = s3.Bucket(new_bucket_name )
for obj in old_bucket.objects.filter(Prefix=old_prefix):
old_source = { 'Bucket': old_bucket_name,
Key': obj.key}
new_key = obj.key.replace(old_prefix, new_prefix)
new_obj = new_bucket.Object(new_key)
new_obj.copy(old_source)`
我期望类似以下内容
03/list of files
答案 0 :(得分:1)
显然,您想重新格式化
中的前缀 sr=ab/pt=01/pt=02/pt=03
至ab/01/02/03
似乎您只是在不了解python函数的情况下简单地复制了某些人的代码。
我假设=
符号的前部是随机的,因此我不会采用保留“ /”分隔符的快捷方式。因此需要多个拆分联接。
old_prefix = 'sr=ab/pt=01/pt=02/pt=03'
step1 = old_prefix.split('/')
step2 = [x.split('=')[1] for x in step1]
new_prefix = "/".join(step2)
您可以使上述代码更精简。
new_prefix = "/".join([x.split('=')[1] for x in old_prefix.split('/')])