如何使用python代码选择要在jupyter笔记本中运行的最新.txt(仅限python代码)

2024-03-28 09:32:02 发布

您现在位置:Python中文网/ 问答频道 /正文

请注意,当我第一次在jupyter笔记本中执行以下代码时,它运行正常:

In  []: run txt2pdf.py Results/*.txt
Out []: Writing 'Results\A_2018_04_27_13_55.txt' with 80 characters per line and 
        60 lines per page...
        PDF document: 1 pages

但在第二次执行时,我执行了相同的代码(希望它在生成最新版本的.txt文件后运行最新版本的.txt),它无法运行:

In [] : run txt2pdf.py Results/*.txt
Out []: usage: txt2pdf.py [-h] [--font FONT] [--font-size FONT_SIZE]
              [--extra-vertical-space EXTRA_VERTICAL_SPACE]
              [--kerning KERNING] [--media MEDIA]
              [--minimum-page-length MINIMUM_PAGE_LENGTH] [--landscape]
              [--margin-left MARGIN_LEFT] [--margin-right MARGIN_RIGHT]
              [--margin-top MARGIN_TOP] [--margin-bottom MARGIN_BOTTOM]
              [--output OUTPUT] [--author AUTHOR] [--title TITLE]
              [--quiet] [--subject SUBJECT] [--keywords KEYWORDS]
              [--break-on-blanks] [--encoding ENCODING] [--page-numbers]
              [--line-numbers]
              filename
txt2pdf.py: error: unrecognized arguments: Results\A_2018_04_27_13_57.txt
An exception has occurred, use %tb to see the full traceback.
SystemExit: 2

任何有用的解决方案都将不胜感激!谢谢您!你知道吗


Tags: run代码inpymargin版本txtline
1条回答
网友
1楼 · 发布于 2024-03-28 09:32:02

只是一个疯狂的猜测-张贴作为一个答案,因为它不适合评论系统。你知道吗

第一次你只有一个文件。命令中的通配符将展开为:

./txt2pdf.py Results/first_file.txt

第二次有两个文件时,命令将展开为:

./txt2pdf.py Results/first_file.txt Results/second_file.txt

您会得到一个错误,因为txt2pdf不需要几个文件名(从错误消息中猜测,我们无法真正知道是哪个txt2)pdf.py格式您正在使用)。你知道吗

如果您使用的是类Unix操作系统,则可以尝试使用sh模块(未经测试):

import sh
from glob import glob
import os

# commenting line by line
def get_last_txt(path):
    return sorted(                         # sort
        glob(path + '/*.txt'),             # all files in the folder
        key=lambda f: os.stat(f).st_mtime  # by modified time
    )[-1]                                  # return the last one

然后你可以这样做几次:

sh.python('txt2pdf.py', get_last_txt("Results"))

如果尚未安装,则可能需要!pip install sh。你知道吗

如果你使用的是Windows,那么去Windows商店安装Ubuntu。用于Windows的Linux子系统实际上将Windows机器转换成了一个像样的开发工作站(我个人不喜欢Linux台式机,使用Mac或Windows和WSSL)。你知道吗

如果您不愿意从Windows应用商店安装Ubuntu,请尝试用pbs替换sh模块-语法略有不同,因此您必须查看文档或用此替换上面的import sh(您可能必须先!pip install pbsconda install pbs):

try:
    import sh
except ImportError:
    # fallback: emulate the sh API with pbs
    import pbs
    class Sh(object):
        def __getattr__(self, attr):
            return pbs.Command(attr)
    sh = Sh()

相关问题 更多 >