小编Gre*_*ory的帖子

如何使用tempfile.NamedTemporaryFile()?

我正在开发一个Python脚本,需要创建大约50个不同的临时文件,这些文件在脚本过程中经常被附加并在最后合并.我确信该tempfile模块可以做我需要的,但我无法弄清楚如何阅读文档.

我想使用临时文件(而不是变量)来节省系统内存,因为这些数据块会随着脚本处理数万个其他文件而变大.

下面的代码块是我正在用于在非临时目录中创建这些文件(非暂时)的hack:

item = (string from another file)   # string must id file for future use
tmpfile = 'tmpfiles/' + item
if item not in totalitems:
   totalitems.add(item)
   with open(tmpfile, 'w') as itemfile:
      output = some stuff
      tmpfile.write(output)
else:
   with open(tmpfile, 'a') as itemfile:
      output = different stuff
      tmpfile.write(output)
Run Code Online (Sandbox Code Playgroud)

我想我需要的是tempfile.NamedTemporaryFile().根据文件:

可以从文件对象的名称成员中检索该名称.

不幸的是,我不明白这意味着什么.当我在我正在处理的文件中再次运行其相应的"项目"时,我只需要能够稍后再次调用每个文件.我认为这是相当直接的,我只是在密集.如果它很重要,我有Python 2.7.1和3.2.3的这个脚本的版本.我真的只需要一个人或另一个人去工作; 我创造了两个作为学习练习.

python temporary-files

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

使用KnitR从R图中获得LaTeX图形标签?

我无法让R/KnitR为数字创建LaTeX \label{}语句.该手册似乎表明\label{}将通过将fig.lp中的字符串(默认情况下为"fig:")与R代码块的标签连接来创建语句.但是,我无法让它发挥作用.没有\label{}为通过编织下面的MWE创建的第一个数字创建语句.第二个图是它的标签添加了我刚刚发现的解决方法,将R块放在图形环境中,并将\label标记放在标记之后或之内\caption.

\documentclass[12pt, english, oneside]{amsart}
\begin{document}

Figure \ref{fig:plot} doesn't have it's label.

<<plot>>=
plot(x=0, y=0)
@

Figure \ref{fig:plot2} has its label.

\begin{figure}
\caption{\label{fig:plot2}}
<<>>=
plot(x=1,y=1)
@
\end{figure}

\end{document}
Run Code Online (Sandbox Code Playgroud)

好的,我通过将R块\begin{figure} . . .\end{figure}放在LaTeX 的环境中找到了解决方法.我可以在同一个环境中创建标签.不过,我想了解Yihui打算如何处理KnitR.

latex r knitr

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

print()vs sys.stdout.write():哪个和为什么?

我有一个用sys.stdout.write()和创建输出的脚本sys.stderr.write().最近我发布了一些关于脚本其他方面的问题,我注意到发布答案的人似乎更喜欢print('some text', file=sys.stdout).我对输出的主要关注只是它可以被shell传送到文件或作为另一个程序的输入.有人可以解释(或指导我现有的解释)两者之间的差异,print()以及sys.stdout.write每个应该使用的情况和这些惯例的合理性吗?

python python-3.x

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

Unix屏幕实用程序错误:无法找到'xterm-256color'的termcap条目

我通过我的Mac上的ssh连接在NetBSD系统上工作,我想使用该screen实用程序,以便我可以启动进程并在终端连接中断后返回它们.当我输入时,screen我收到错误消息:

Cannot find termcap entry for 'xterm-256color'
Run Code Online (Sandbox Code Playgroud)

浏览论坛帖子后,我认为它与远程机器上的termcap有关,但似乎并非如此; 我可以从另一台计算机的ssh会话中启动屏幕而没有任何错误,我通常无法访问该计算机.这表明我需要在本地计算机上配置一些东西,但我无法弄清楚是什么或如何.虽然这篇文章被标记为"gnu-screen"但我怀疑我正在使用Berkeley屏幕,尽管我不知道这是否是一个重要的区别.

macos ssh gnu-screen termcap netbsd

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

如何从r中的数据框创建栅格?

我有一个数据框,其中为笛卡尔坐标(x,y)指定值(l),如下面的最小工作示例所示.

set.seed(2013)
df <- data.frame( x = rep( 0:1, each=2 ),
                  y = rep( 0:1,  2),
                  l = rnorm( 4 ))

df
#   x y           l
# 1 0 0 -0.09202453
# 2 0 1  0.78901912
# 3 1 0 -0.66744232
# 4 1 1  1.36061149
Run Code Online (Sandbox Code Playgroud)

我想使用光栅包创建一个栅格,但是我对文档的阅读并没有透露一种简单的方法,用于将数据加载到栅格单元格中.我想出了几种方法来使用for循环,但我怀疑有一种更直接的方法,我缺少.

r raster

14
推荐指数
2
解决办法
3万
查看次数

为什么我的Python3脚本不愿意将其输出汇总到head或tail(sys模块)?

我有一个Python3脚本将其输出写入stdout,但是当我将输出传输到head或tail时,它会抱怨.请注意下面的示例输出中它的工作方式,即head返回前两行输出.

> ./script.py '../Testdata/*indels.ss' -m 5 | head -2                                                                                              ~/Databases/Avian_genomes/Sandbox/combined
xread
2999 50
Traceback (most recent call last):
  File "./new.py", line 194, in <module>
    sys.stdout.write(lineout)
IOError: [Errno 32] Broken pipe
Exception IOError: IOError(32, 'Broken pipe') in <_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'> ignored
Run Code Online (Sandbox Code Playgroud)

相比之下,脚本没有问题,其输出通过管道传输到awk,如下所示.

> ./script.py '../Testdata/*indels.ss' -m 5 | awk 'NR < 3 {print $0}'                                                                              ~/Databases/Avian_genomes/Sandbox/combined
xread
2999 50
Run Code Online (Sandbox Code Playgroud)

如果您需要脚本中的某些代码超出错误消息中包含的内容,请告诉我.我不确定什么是相关的.

python pipe python-3.x

13
推荐指数
2
解决办法
3503
查看次数

如何使用tidy和knitr在R source中包装文本

我最近和knitr合作,虽然大部分方面都很顺利,但是在完成的文档中包含R代码还有一个格式问题,我还没想到.我经常需要在我的R块中创建相对较长的文本字符串,例如xtable()函数的标题.虽然整洁一般很好地包装R代码并将其保存在LaTeX的阴影框中,但它不知道如何处理文本蜇,因此它不包裹它们,并且它们从右边流出页.

我会非常满意一个整理所有工作的解决方案.但是,我也满意的解决方案,我可以手动应用于我的Rnw源中的R块中的长字符串.我只是不想编辑KnitR创建的tex文件.

下面是一个最小的工作示例.

\documentclass[12pt, english, oneside]{amsart}

\begin{document}

<<setup, include=FALSE, cache=FALSE, tidy=TRUE>>=
options(tidy=TRUE, width=50)
@

<<>>=
x <- c("This","will","wrap","nicely","because","tidy","knows","how","to","deal","with","it.","So","nice","how","it","stays","in","the","box.")
longstr <- "This string will flow off the right side of the page, because tidy doesn't know how to wrap it."
@

\end{document}
Run Code Online (Sandbox Code Playgroud)

r knitr

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

如何在R中将数据帧转换为3d数组

我有一个数据框,我想转换为三维数组.数据帧中的一列应作为分组变量,用于将帧拆分为可以组合到阵列中的2d矩阵.在下面的最小工作示例中,数据帧应该由变量"i"分割成矩阵,然后组合成4x4x2数组.该解决方案应该适用于大型数据集,理想情况下可以推广将数据帧转换为维度数组.

# Make reproducible 
set.seed(123)

df <- {
  data.frame(i=rep(1:2, each=4),
             x=rep(rep(0:1, each=2), 2),
             y=rep(rep(0:1, 2), 2),
             l=rnorm(8))
}

df
#   i x y           l
# 1 1 0 0 -0.56047565
# 2 1 0 1 -0.23017749
# 3 1 1 0  1.55870831
# 4 1 1 1  0.07050839
# 5 2 0 0  0.12928774
# 6 2 0 1  1.71506499
# 7 2 1 0  0.46091621
# 8 2 1 1 -1.26506123
Run Code Online (Sandbox Code Playgroud)

注意:我怀疑Hadley Wickham的plyr可能会提供所需的工具,也许是大胆的?

arrays r

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

如何在Mac上安装BSD make(同时保留GNU make)?

make在我的Mac上有两个问题:一个关于安装第二种make风味的问题,另一个关于如何管理这两种风味.

  1. 我需要make在我的Mac上安装BSD ,但我不想删除makeMac上标准的GNU ; 伯克利是一个特殊的项目.尽管安装BSD有广泛的资源,但我还是无法弄清楚从哪里获得以及如何安装该单个程序.做这个的最好方式是什么?

  2. 我想我需要把它放进去,/usr/local/binmake由Mac OS开发工具提供的GNU 将保留在原来的位置/bin.然后我可以管理使用别名调用哪个make.我还是一个*nix新手; 这是一个合理的策略还是有更好的方法?

macos makefile

5
推荐指数
2
解决办法
2992
查看次数

如何控制KnitR中数字的标题位置?

有没有办法为使用KnitR的R生成的数字指定字幕的位置?我希望有一些功能上等同于xtable()caption.placement选项.

下面提供了一个最小的工作示例.

\documentclass[12pt, english, oneside]{amsart}
\begin{document}

The caption for Figure \ref{fig:plot} is placed below the figure. Could we place it above, instead?
<<plot, echo=FALSE, fig.cap="Default caption placement is below the figure.">>=
plot(x=0, y=0)
@

\end{document}
Run Code Online (Sandbox Code Playgroud)

latex r knitr

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

标签 统计

r ×5

knitr ×3

python ×3

latex ×2

macos ×2

python-3.x ×2

arrays ×1

gnu-screen ×1

makefile ×1

netbsd ×1

pipe ×1

raster ×1

ssh ×1

temporary-files ×1

termcap ×1