小编jdh*_*hao的帖子

如何源文件相对于文件?

我正在尝试将我的vimrc文件分成多个文件 - init.vim、keybindings.vim、ui.vim等 - 但我无法将 Vim 获取到相对于的源文件init.vim(而是相对于我启动 Vim 的位置的源文件。

这是我在顶部得到的init.vim:

source keybindings.vim
source ui.vim
Run Code Online (Sandbox Code Playgroud)

如果我vim从与这些文件相同的目录运行,它就可以正常工作;如果我从任何其他目录运行它,我会收到以下错误:

Error detected while processing /path/to/vimrc:
line 1:
E484: Can't open file keybindings.vim
line 2:
E484: Can't open file ui.vim
Press ENTER or type command to continue
Run Code Online (Sandbox Code Playgroud)

编辑:值得注意的是,我使用的是 NixOS,所以我不知道绝对路径是什么,也不知道如果我发现它们是否会保持不变。

vim neovim

11
推荐指数
3
解决办法
4111
查看次数

matplotlib无法在plt.savefig()或plt.figure()中看到设置edgecolor的效果

我无法弄清楚如何在图形周围添加边框,我的理解是这将是figure.edgecolor参数或savefig(edgecolor),但这似乎不起作用.我正在使用matplotlib 1.1.1.我希望这段代码在图周围绘制一个红色边框:

import matplotlib.pyplot as plt
plt.plot([1,2,3])
plt.savefig('test.png', edgecolor='r', facecolor='g')
Run Code Online (Sandbox Code Playgroud)

当我看到这个图时它有一个绿色的脸色,但我看不到红色的边缘色?

以下内容也不起作用:

import matplotlib.pyplot as plt
plt.figure(edgecolor='r', facecolor='g')
plt.plot([1,2,3])
plt.show()
Run Code Online (Sandbox Code Playgroud)

我再次看到绿色的脸色,但没有红色的边缘色.我究竟做错了什么?

有任何想法吗?

python matplotlib

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

MD with Latex to HTML with MathJax with Pandoc

有点类似于How to convert HTML with mathjax into latex using pandoc?但在某种意义上,恰恰相反。

如果我使用 Pandoc 用 LaTeX 创建 MD 文件,甚至只是 MD 文件,我如何使用 Pandoc 将这些文件转换为带有正确的\(\),\[\]数学标签的HTML ?

markdown latex mathjax pandoc

7
推荐指数
2
解决办法
5678
查看次数

即使我的文件是有效的 utf-8 编码文件,pandoc 也会抱怨 utf-8 解码错误

我正在尝试使用pandocWindows 系统将 Markdown 文件转换为 pdf 。由于我的 markdown 包含汉字,所以我使用以下命令来生成 pdf:

pandoc --pdf-engine=xelatex -V CJKmainfont=KaiTi test.md -o test.pdfbut
Run Code Online (Sandbox Code Playgroud)

但是 pandoc 抱怨该文件包含它无法处理的非 utf8 字符,确切的错误消息是:

生成 PDF 时出错。
!未定义的控制序列。
pandoc.exe:无法解码字节“\xae”:>Data.Text.Internal.Encoding.streamDecodeUtf8With:UTF-8 流无效

根据我在互联网上找到的内容。这主要是由于markdown文件的编码,可能与pandoc无关。我的文件包含很多汉字和英文字符。我已将其转换为 utf-8 编码。

我尝试过但没有成功的事情

非 utf8 字符的 Grep

按照此处和此处的说明进行操作。我已验证系统区域设置为 UTF-8,输出localectl status为:

   System Locale: LANG=en_US.UTF-8
       VC Keymap: us
      X11 Layout: us
Run Code Online (Sandbox Code Playgroud)

我试图 grep 非 utf8 字符。使用的命令是grep -axv '.*' test.md. 但是命令什么也没输出。(我认为这意味着没有 utf-8 无法解码的无效字符。)

尝试丢弃无效字符

我按照此处的说明尝试从我的文件中删除非 utf8 字符。我使用的命令是:

iconv -f utf-8 -t utf-8 -c …
Run Code Online (Sandbox Code Playgroud)

unicode bash utf-8 character-encoding pandoc

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

如何使用 python-pptx 增加 python 生成的 powerpoint 演示文稿的幻灯片大小

我正在尝试将多个图表放入 python 生成的幻灯片中,但我需要幻灯片的尺寸更宽。我浏览了提供的可用文档,但内容并不多。

python powerpoint python-pptx

6
推荐指数
2
解决办法
8118
查看次数

如何在vim脚本中使用字符串设置选项

我正在尝试设置一个选项,但是使用变量时它不起作用。

这实际上是有效的:

set runtimepath+=~/.vim/bundle/foo/foo.vim/
Run Code Online (Sandbox Code Playgroud)

当我尝试此操作时,它不再起作用:

g:foo_path = '~/.vim/bundle/foo/foo.vim/'
set runtimepath+=g:foo_path
Run Code Online (Sandbox Code Playgroud)

我在这里看到了类似的主题,他们使用以下命令来设置带有变量的选项:

let &backupdir=s:vimetc.'backups/'
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试这样做时:

 let &runtimepath+=g:foo_path
Run Code Online (Sandbox Code Playgroud)

它仍然不起作用。我正进入(状态:

 E734: Wrong variable type for +=
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢。

vim

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

python - 将非ascii字符写入文件

我在Linux上,想要将字符串(在utf-8中)写入txt文件.这是我的代码:

# -*- coding: UTF-8-*-

import os
import sys


def __init__(self, dirname, speaker, file, exportFile):

      text_file = open(exportFile, "a")

      text_file.write(speaker.encode("utf-8"))
      text_file.write(file.encode("utf-8"))

      text_file.close()      
Run Code Online (Sandbox Code Playgroud)

当我在Windows上时,它可以工作.但在Linux上,我收到此错误:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position in position 36: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?谢谢.

utf-8 python-2.x

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

python正则表达式:匹配多个正则表达式之一

我有一个字符串和三个要匹配的模式,我使用python re包。具体来说,如果找到模式之一,则输出“不喜欢”,否则,输出“喜欢”。有关这三种模式的简要信息:

模式1:检查字符串中的所有字符是否均为大写字母

模式2:检查连续字符是否相同,例如 AA,BB...

pattern3:检查是否XYXY存在模式,X并且Y可以相同,并且该模式中的字母不需要彼此相邻。

当我分别编写模式时,程序将按预期运行。但是,当我使用交替组合三种模式时|,结果是错误的。我已经检查了stackoverflow帖子,例如,在这里和这里。提供的解决方案对我不起作用。

这是可以正常工作的原始代码:

import sys
import re

if __name__ == "__main__":
    pattern1 = re.compile(r"[^A-Z]+")
    pattern2 = re.compile(r"([A-Z])\1")
    pattern3 = re.compile(r"([A-Z])[A-Z]*([A-Z])[A-Z]*\1[A-Z]*\2")

    word = sys.stdin.readline()
    word = word.rstrip('\n')
    if pattern1.search(word) or pattern2.search(word) or pattern3.search(word):
        print("Dislikes")
    else:
        print("Likes")
Run Code Online (Sandbox Code Playgroud)

如果我使用以下代码将3种模式组合为一种,则可能是错误的:

import sys
import re

if __name__ == "__main__":

    pattern = r"([A-Z])[A-Z]*([A-Z])[A-Z]*\1[A-Z]*\2|([A-Z])\1|[^A-Z]+"

    word = sys.stdin.readline()

    word = word.rstrip('\n')
    if re.search(word, pattern):
        print("Dislikes")
    else:
       print("Likes") …
Run Code Online (Sandbox Code Playgroud)

python regex

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

找到将一个二进制字符串更改为另一个字符串所需的最

给定两个只包含0or的字符串str1和str2 1,有一些步骤可以将str1更改为str2,

step1:找到长度为2的str1子串并反转子串,str1变为str1'(str1'!= str1)

step2:找到长度为3的str1'子串,并反转子串,str1'变为str1''(str1''!= str1')

以下步骤类似.

字符串长度在[2,30]范围内

要求:每个步骤必须执行一次,我们不能跳过前面的步骤并执行下一步.

如果可以将str1更改为str2,则输出所需的最小步数,否则输出-1

例1

str1 ="1010",str2 ="0011",所需的最小步长为2

首先,选择范围[2,3],"1010" - >"1001"中的子串,

然后选择[0,2],"1001" - >"0011"范围内的子串

例2

str1 ="1001",str2 ="0110",不可能将str1更改为str2,因为在步骤1中,str1可以更改为"0101"或"1010",但在步骤3中,不可能更改length3子串使它与众不同 所以输出为-1.

例3

str1 ="10101010",str2 ="00101011",输出为7

我无法弄清楚示例3,因为有两种可能性.任何人都可以提供一些如何解决这个问题的提示吗?这个问题是什么类型的?是动态编程吗?

string algorithm

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

如果我只对一些样本进行转发,什么时候计算图会被释放?

我有一个用例,我对批次中的每个样本进行转发,并且仅根据样本模型输出的某些条件累积某些样本的损失。这是一个说明性代码,

for batch_idx, (data, target) in enumerate(train_loader):
    optimizer.zero_grad()
    total_loss = 0

    loss_count_local = 0
    for i in range(len(target)):
        im = Variable(data[i].unsqueeze(0).cuda())
        y = Variable(torch.FloatTensor([target[i]]).cuda())

        out = model(im)

        # if out satisfy some condtion, we will calculate loss
        # for this sample, else proceed to next sample
        if some_condition(out):
            loss = criterion(out, y)
        else:
            continue

        total_loss += loss
        loss_count_local += 1

        if loss_count_local == 32 or i == (len(target)-1):
            total_loss /= loss_count_local
            total_loss.backward()
            total_loss = 0
            loss_count_local = 0

    optimizer.step()
Run Code Online (Sandbox Code Playgroud)

我的问题是,正如我对所有样本进行前向操作,但仅对某些样本进行后向操作。那些不造成损失的样本的图表什么时候会被释放?这些图表是否仅在 …

python backpropagation pytorch

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