小编Duc*_*her的帖子

使用Python中的PDFMiner从PDF文件中提取文本?

Python版本2.7

我正在寻找有关如何使用PDFMiner和Python从PDF文件中提取文本的文档示例.

看起来PDFMiner更新了他们的API,我发现的所有相关示例都包含过时的代码(类和方法已经改变).我发现的库使得从PDF文件中提取文本的任务更容易使用旧的PDFMiner语法,所以我不知道如何做到这一点.

事实上,我只是看源代码,看看能否解决它.

python text-extraction pdfminer

71
推荐指数
4
解决办法
10万
查看次数

你如何对Laravel中的每个响应强制执行JSON响应?

我正在尝试使用Laravel Framework构建一个REST api,我想要一种方法来强制API始终使用JSON进行响应,而不是通过以下方式执行此操作:

return Response::json($data);
Run Code Online (Sandbox Code Playgroud)

换句话说,我希望每个响应都是JSON.有没有一个好方法呢?

更新:即使在未找到异常的异常情况下,响应也必须是JSON.

php rest json laravel

8
推荐指数
5
解决办法
5817
查看次数

使用google api时如何设置refresh_token?

我正在尝试学习如何使用google api更改日历上的活动.服务器是将基于数据库中的信息更新日历的用户.实际上不需要用户交互.

问题是我在获取/使用刷新令牌时遇到问题.我单击添加到页面的"连接我"链接,它给我一个错误:

Fatal error: Uncaught exception 'Google_Auth_Exception' with message 'Error refreshing the OAuth2 token, message: '{ "error" : "invalid_request", "error_description" : "Missing required parameter: refresh_token" }

我已经尝试过这种方式设置刷新令牌,以及类似的方法,但它们似乎都不起作用,这让我觉得我正在错误地实现它们.

当我打印出$_SESSION['access_token']变量时,它显示没有refresh_token:

{"access_token":"token","token_type":"Bearer","expires_in":3599,"created":1417534503}

这是我用来授权没有refresh_token部分的'用户'的功能(基于一个例子):

function googleAuth(){

    $client_id = 'myclientid';
    $client_secret = 'myclientsecret';
    $redirect_uri = 'redirecturi';
    $client = new Google_Client();
    $client->setAccessType('offline');
    $client->setClientId($client_id);
    $client->setClientSecret($client_secret);
    $client->setRedirectUri($redirect_uri);
    $client->setScopes('https://www.googleapis.com/auth/calendar');

    /************************************************
    If we're logging out we just need to clear our
    local access token in this case
    ************************************************/
    if (isset($_REQUEST['logout'])) { …
Run Code Online (Sandbox Code Playgroud)

php google-api google-api-php-client

2
推荐指数
1
解决办法
5084
查看次数

ChromeDriver"无法创建默认配置文件目录"

我正在使用selenium和python,我正在尝试使用一些参数来启动chromedriver.

from selenium import webdriver
from selenium.webdriver.chrome.options import Options as ChromeOptions

def buildDriver():
    options = ChromeOptions()
    options.add_argument('--profile-directory="Default"')
    options.add_argument('--user-data-dir="C:/Temp/ChromeProfile"')
    browser = webdriver.Chrome(chrome_options=options)

driver = buildDriver()
Run Code Online (Sandbox Code Playgroud)

我无法找到以下错误的解决方案:

selenium.common.exceptions.WebDriverException:消息:未知错误:无法创建默认配置文件目录

谷歌搜索这个错误不会导致任何有意义的事情,至少对我没有意义.

python selenium automation selenium-chromedriver

2
推荐指数
1
解决办法
5364
查看次数

与原始函数一起修饰的函数,而无需重写该函数

如果我有一个装饰器和一个函数,但我想使用装饰后的函数以及该函数的未装饰版本,我该怎么办?

我没有太多使用装饰器,从我所能找到的来看,似乎你必须编写两个单独的函数来完成此任务,或者使用函数作为参数调用装饰器,这在处理多个函数时可能会有些混乱装饰者。

为了解决这个问题,我编写了一个函数,然后使用一种有点迂回的方式来装饰该函数并在事后返回该装饰函数。所以我可以访问该函数的未修饰版本和修饰版本。据我所知,实现这一目标的方法有点被人看不起,但到目前为止它对我来说一直有效。我无法想象这是解决这个问题的最佳方法。

本质上,我将想要装饰的函数与装饰器函数一起传递给检查函数文本的方法,将语法添加到@decorator文本中,然后将装饰器函数__builtins__临时添加到模块中,以便我可以将exec文本转换为字典来定义新的修饰函数。这个新的函数对象是从字典中提取出来的,并作为新的修饰函数返回。

我很确定这不是解决这个问题的最佳方法。我不认为它适用于所有情况,但我也不想每次都调用修饰函数或重写函数。

python metaprogramming decorator python-decorators

1
推荐指数
1
解决办法
599
查看次数

不知道flock是如何工作的.需要一些澄清

我有一个bash脚本,它发出一个cURL请求并将输出写入一个名为的文件resp.txt.我需要创建一个独占锁,以便我可以写入该文件,而不用担心多个用户同时运行脚本和编辑文本文件.

这是我希望锁定文件,执行请求和写入文本文件的代码:

(
flock -e 200
curl 'someurl' -H 'someHeader' > resp.txt
) 200>/home/user/ITS/resp.txt
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?我的实际脚本比这个有点长,但是当我将flock语法添加到bash脚本时它似乎会中断.我的理解是,这会创建一个可以写入锁定文件的子shell.我只是不确定是否需要将文件描述符添加到curl请求中,如下所示:

curl 'someurl' -H 'someHeader' 200>resp.txt
Run Code Online (Sandbox Code Playgroud)

如果有人可以解释这些文件描述符是如何工作的,让我知道我是否正确锁定文件会很棒!

linux bash file-descriptor flock

1
推荐指数
1
解决办法
2425
查看次数