问题描述
import tika
import logging
from tika import parser
tika.initVM()
import os
from Tool.settings import Settings
settings = Settings() # setting.UPLOAD_DIRECTORY = 'C:\\Users\\username\\Projects\\Tool/uploaded_files'
The settings looks something like this:
# class Settings:
# def __init__(self):
# self.ROOTDIR = "{}".format(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
# self.UPLOAD_DIRECTORY = r"{}/uploaded_files".format(self.Tool_DIR)
def convert_pdf_to_text(filepath):
tika.initVM()
logging.info('Started Tika server')
raw_data = parser.from_file(filepath)
return raw_data['content'],raw_data['Metadata']
def get_text(path):
text,Metadata = convert_pdf_to_text(path)
return text,Metadata
class document_split():
def __init__(self,path):
self.path = settings.UPLOAD_DIRECTORY
self.file = os.path.basename(path)
self.settings = Settings()
self.raw_data,self.Metadata = get_text(self.path)
class converted_files():
def __init__(self,type):
self.company = type
self.settings = Settings()
self.UPLOAD_DIRECTORY = settings.UPLOAD_DIRECTORY
self.dictionary = self.create_dictionary
@property
def create_dictionary(self):
loaded_files = {}
for file in os.listdir(self.UPLOAD_DIRECTORY):
fp = os.path.join(settings.UPLOAD_DIRECTORY,file)
loaded_file = Document(fp)
print(loaded_file)
value = loaded_file
key = loaded_file.date
loaded_files[key] = value
print(value)
print('Loaded {} files'.format(len(loaded_files)))
return loaded_files
我的问题在于这部分:
for file in os.listdir(self.UPLOAD_DIRECTORY):
fp = os.path.join(settings.UPLOAD_DIRECTORY,file)
loaded_file = Document(fp)
print(loaded_file)
value = loaded_file
key = loaded_file.date
loaded_files[key] = value
print(value)
它给我以下错误:
如果_is_file_object(urlOrPath)否则以urlOrPath打开(path,'rb')as f: PermissionError:[Errno 13]权限被拒绝:'C:\ Users \ user \ Projects \ Tool / uploaded_files'
当我对如下路径进行硬编码时,它不会给出此错误消息:
r'C:\\Users\\user\\Projects\\Tool/uploaded_files'
所以现在我正在努力寻找一种方法来r'
进入打开文件的路径...有人可以帮助我吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)