2017-02-06 18 views
0

Я добавил изображение, чтобы показать, что я сделал. Я пытаюсь написать программу, которая добавит пустую страницу ко всем PDF-файлам в каталог с нечетным количеством страниц. Однако я не могу читать все PDF-файлы в каталоге.Читать все PDF-файлы в каталоге (картинке)

Сценарий У меня есть работы по одному PDF-файлу, но у меня есть 1000 из них. Почему я не могу прочитать все PDF-файлы в каталоге user_input?

Screenshot of code and error here

код здесь

from PyPDF2 import PdfFileReader, PdfFileWriter, PdfFileMerger 
import os 


user_input = input("Enter the path of your file: ") 
files = os.listdir(user_input) 

for file in files: 
    print(file) 
    pdfReader = PdfFileReader(open(files, 'rb')) 
+0

@MYGz жаль, что – mbf94

+0

Не извиняйтесь, это нормально, вы можете быть здесь новым, просто узнать правильные методы форматирования. – MYGz

ответ

0

ли .py файл в том же каталоге, что ПРВ? Если нет, вам понадобится полный путь, чтобы прочитать файл, а не только имя файла, которое возвращается os.listdir

+0

.py файл находится в том же каталоге. для ввода пользователем путь: C: \ Python Projects \ PDF (где находятся файлы PDF и файлы .py) – mbf94

0

Для обработки каждого PDF-файла в папке вам нужно несколько вещей.

  1. добраться до нужного каталога
  2. получить все файлы
  3. получить только PDF файлы

OS идеально подходит для этого. Он может получить все файлы, а затем дать вам понять, что с ними делать. Одна из проблем, которая у меня была (может быть, и ваша), заключалась в том, что мой путь имел пробелы в ней, а os.chdir() смотрел на путь («что-то \ долгое \ с \ spaces/abcd/pdf \ folder») и был заменив все пробелы на «\», что означает, что мой последний путь был «что-то \ долгое \ с \ spaces/abcd/pdf \ folder», что не является допустимым путем. Удаление «\» с исходного пользовательского ввода работало просто отлично. Дайте мне знать, если вам нужна дополнительная помощь.

import os 
os.chdir(raw_input("enter the path: ").replace("\\", "")) 
print os.listdir(".") 
for file in os.listdir("."): 
    if file.endswith(".pdf"): 
     print file 
     process(file) # do whatever it is you need to here