Я перетасовал CSV-файл, содержащий имена файлов, относящиеся к PDF-файлам:
list1 = list(csv.reader(open('input.csv')))
random.shuffle(list1)
outputwriter = csv.writer(open("random.csv", "wb"))
outputwriter.writerows(list1)
Как видите, я также записал результат в новый CSV-файл, но я думаю, что в этом нет необходимости. В любом случае, случайно перемешанный список выглядит, например, так:
R001.pdf
L008.pdf
L009.pdf
L011.pdf
R006.pdf
L014.pdf
L016.pdf
R019.pdf
R021.pdf
R005.pdf
R007.pdf
L010.pdf
R004.pdf
L015.pdf
L018.pdf
L003.pdf
L012.pdf
L002.pdf
L017.pdf
L020.pdf
R013.pdf
Теперь я хотел объединить эти PDF-файлы в случайном порядке, используя PyPDF2.
from PyPDF2 import PdfFileMerger
merger = PdfFileMerger()
for x in list1:
merger.append(x)
merger.write("result.pdf")
Однако это приводит к следующей ошибке:
AttributeError: 'list' object has no attribute 'seek'
Кто-нибудь знает, что я делаю не так? Я также попытался прочитать список из нового random.csv следующим образом:
merger = PdfFileMerger()
with open("random.csv") as f:
r = csv.reader(f)
for x in r:
merger.append(x)
Это, однако, также приводит к ошибке:
ValueError: I/O operation on closed file
Я был бы очень рад узнать, как это сделать! :)