小编Jer*_*ska的帖子

如何在 python 3 中使用 PDFminer.six?

我想使用 pdfminer.six 这是一个工具,可以与 Python3 一起用于从 PDF 文档中提取信息。问题是根本没有好的文档,也没有关于如何使用该工具的源代码示例。

我已经尝试过 StackOverflow 中的一些代码,但没有奏效。下面是我的代码。

from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import StringIO

def convert_pdf_to_txt(path):
    rsrcmgr = PDFResourceManager()
    retstr = StringIO()
    codec = 'utf-8'
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
    fp = open(path, 'rb')
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    password = ""
    maxpages = 0
    caching = True
    pagenos=set()

    for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
        interpreter.process_page(page)

    text = retstr.getvalue()

    fp.close()
    device.close()
    retstr.close()
    return …
Run Code Online (Sandbox Code Playgroud)

python-3.x pdfminer pypdf2

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

如果任何作业失败,Cron 作业会自动重试

我有一个每 5 小时运行一次的 cron 作业。它调用一个PHP脚本,这个脚本会调用一个外部 API 来同步一些数据。

问题是有时我会从 API 超时,并且作业将失败。

是否有任何机制可以让 cron tab 自动重试或自动恢复失败的作业?

我试图做一项额外的工作,并在出现任何故障时手动调用它。

这样做的最佳方法是什么?

php cron

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

使用 read() 或 run() 运行 bash 命令时,我应该如何转义“&&”和其他特殊字符?

我的代码:

df = read(`df -h|grep /dev/sda1 && df -h|grep pCloud`, String)
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到来自 Julia 的以下消息:

df = read(`df -h|grep /dev/sda1 && df -h|grep pCloud`, String)
Run Code Online (Sandbox Code Playgroud)

我发现有人有类似的问题,但他们似乎没有逃避就解决了这个问题。

bash julia

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

尝试填充复合类型的空数组时,出现“错误:LoadError:BoundsError:尝试访问索引 [1] 处的 0 元素数组{Candidate,1}”

尝试使用用户的输入填充空数组时出现错误。

const max = 9 # a maximal number of candidates

# Let us define a composite type for the candidates in our elections
mutable struct Candidate
    name::String
    votes::Int8
 end
 
 
candidates = Candidate[]

i = 1

while i < max
 println("Name of the candidate: ?")
 candidates[i].name = readline();
 println("Votes on him: ?")
 candidates[i].votes = parse(Int8, readline(), base=10);
 println("Thank you, let us move to the next candidate.")
 global i = i +1    
 end
Run Code Online (Sandbox Code Playgroud)

显示(“候选人姓名:?”)后,出现以下错误:

ERROR: LoadError: BoundsError: attempt to access 0-element …
Run Code Online (Sandbox Code Playgroud)

arrays composite julia

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

有没有一种方法可以仅使用 pandas 将公式写入 .xlsx 文件,即不使用 xlsxwriter / openpyxl 等工具?

我编写了一个脚本来读取此 .xlsx 文件,然后创建一个作为其他三列之和的列,并将所有内容保存到一个新文件中:

import pandas 

df = pandas.read_excel("excel-comp-data.xlsx")

df["total"] = df["Jan"] + df["Feb"] + df["Mar"]

df.to_excel("excel-comp-data-formula-by-pandas.xlsx")
Run Code Online (Sandbox Code Playgroud)

此代码的问题在于它不创建公式,它只是将所有内容相加并将结果放置在新创建的列中。

当我稍后访问libreoffice calc中新创建的文件 并手动修改“Jan”、“Feb”或“March”中的任何数据时,“total”列中的相应数据不会更新。

我在 SO 上找到了一些创建公式的代码片段,但它们都使用xlsxwriter. pandas如果不使用此类工具,我如何创建公式?

这完全可行吗?

python xlsx pandas

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

C 中的嵌套 if 语句 - 为什么它不评估最后一个 else if?

else if当您分配给choicevalue时,以下代码不会执行最后一条语句3

#include<stdio.h>
#include<stdlib.h>

int main() {
    puts("Specify with a number what is that you want to do.");
    puts("1. Restore wallet from seed.");
    puts("2. Generate a view only wallet.");
    puts("3. Get guidance on the usage from within monero-wallet-cli.");

    unsigned char choice;
    choice = getchar(); 
 
    if ( choice == '1' ) {
        system("nice -19 ~/monero-x86_64-linux-gnu-v0.17.2.0/monero-wallet-cli --testnet --restore-deterministic-wallet"); 
        exit(0);
    }
    else if ( choice == '2' ) {
        system("nice -19 ~/monero-x86_64-linux-gnu-v0.17.2.0/monero-wallet-cli --testnet --generate-from-view-key wallet-view-only");
        exit(0);
    }
    else …
Run Code Online (Sandbox Code Playgroud)

c if-statement control-flow

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

无法从函数返回值:错误:LoadError:ArgumentError:不应打印`nothing`;使用 `show`、`repr` 或

我一直在与 Julia 一起解决哈佛 CS50 中的问题集。这个脚本是我对[复数选举的解决方案] 1

println("How many contenders do we have?")
const max_candidates = parse(Int, readline()) # a maximal number of candidates


# Let us define a composite type for the candidates in our elections
mutable struct Candidate
    name::String
    votes::Int64
    end
 
function vote(name)
for i in 1:max_candidates
        if candidates[i].name == name
        candidates[i].votes = candidates[i].votes + 1 
         end
       end
      end

function print_winner()
 max_votes = 0
 for i in 1:max_candidates
  if candidates[i].votes > max_votes
     max_votes = candidates[i].votes …
Run Code Online (Sandbox Code Playgroud)

void julia

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

C 语言:scanf 和 sscanf 表达式

我在 scanf 和 sscanf 参数中遇到过类似这样的表达式:

sscanf(buffer, "%d,%100[^,]%*c%f", destination_pointer)
Run Code Online (Sandbox Code Playgroud)

或者

scanf("\n%99s", destination);
Run Code Online (Sandbox Code Playgroud)

解释这些的正确方法是什么?我知道“%s %c %d”之类的东西是什么,而且 %100 或通常的“%number”是要读取的输入的大小。但是剩下的呢?我能找到的只是基本的例子,没有接近这个复杂的东西。有参考指南吗?

c scanf

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

为什么这个 Elixir 脚本在完成其工作之前就退出了?

我在 Elixir 脚本中编写了一个模块 SC wget.exs,. 该模块SC 利用 Erlang 的操作系统模块来执行复杂的命令并将其输出打印在屏幕上。我在脚本中使用该模块一次下载多个包wget

\n
#!/usr/bin/env elixir\n\ndefmodule SC do\n  def run(cmmnd) do\n    output = :os.cmd(String.to_charlist(cmmnd))    \n    IO.puts output\n  end\nend\n\ndefmodule Downloader do\n  def download_packages do\n    lst_f_pckgs = "wget-list-sysv"\n\n    #System.cmd("wget", ["https://www.linuxfromscratch.org/lfs/view/stable/#{lst_f_pckgs}"])\n    SC.run("wget -c https://www.linuxfromscratch.org/lfs/view/stable/#{lst_f_pckgs}")\n    \n    {:ok, file_content} = File.read(lst_f_pckgs)\n    arr_f_pckgs = String.split(file_content, ~r/\\s+/)\n\n    tasks =\n      arr_f_pckgs\n      |> Enum.map(fn l ->\n        #Task.async(fn -> System.cmd("wget", [l]) end)\n        Task.async(fn -> SC.run("wget -c #{l}") end)\n      end)\n\n    tasks\n    |> Enum.each(&Task.await/1)\n\n    IO.puts "All of them are downloaded."\n …
Run Code Online (Sandbox Code Playgroud)

concurrency erlang elixir spawn

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

命令 cat /etc/group &amp; groups &amp; getent group 有什么区别

我是一个 Unix 新手,想知道所有组都存储在 Unix 中的哪里。我以为它们会在/etc/group文件中更新,但是当我读取该文件时,它并没有包含所有内容。而getent group命令显示所有组以及每个组中关联的用户。

我知道每个用户都有一个主要组,该组将存储在/etc/passwd(通常在字段 4 中),并且可能有一个或多个补充组。只有补充团体协会在/etc/group

所以,这是我的问题。

  1. 我是否有所有组都存储在中的错误印象/etc/group

  2. 如果是这样,这三个命令有什么区别

    cat /etc/group
    b. groups
    C。getent group

  3. 为什么我使用该命令时能够看到的组数量getent groups多于cat /etc/group

请告诉我。

unix

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