我想在我的bash脚本中测试stdout和stderr的定向,或者更确切地说,如果它们已被重定向.
你有个主意吗?
在$*bash的变量不给我这个信息.
我想使用docstring或类似的东西记录我的fortran例程,这些例程可以与python help命令一起使用.由f2py生成的自动生成的文档字符串是不够的,我需要添加更多细节,就像我们使用python函数docstring一样.
在我的想法中,它应该看起来像:
mymod.f:
subroutine foo()
! This is my function
end subroutine
Run Code Online (Sandbox Code Playgroud)
并在python会话中:
>>> import mymod
>>> help(mymod.foo)
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来在我的目录包含的所有内容上进行bash的简单循环,即文件,目录和包含隐藏的链接.
我更愿意,如果它可以特别在bash中,但它必须是最一般的.当然,文件名(和目录名)可以有空格,断行,符号.除了"/"和ASCII NULL(0×0)之外的所有内容,即使在第一个字符处也是如此.此外,结果应排除'.' 和'..'目录.
这是循环必须处理的文件生成器:
#!/bin/bash
mkdir -p test
cd test
touch A 1 ! "hello world" \$\"sym.dat .hidden " start with space" $'\n start with a newline'
mkdir -p ". hidden with space" $'My Personal\nDirectory'
Run Code Online (Sandbox Code Playgroud)
所以我的循环应该看起来像(但必须处理上面棘手的东西):
for i in * ;
echo ">$i<"
done
Run Code Online (Sandbox Code Playgroud)
我最接近的尝试是使用ls和bash数组,但它无法使用,是:
IFS=$(echo -en "\n\b")
l=( $(ls -A .) )
for i in ${l[@]} ; do
echo ">$i<"
done
unset IFS
Run Code Online (Sandbox Code Playgroud)
或者使用bash数组,但不排除".."目录:
IFS=$(echo -en "\n\b")
l=( [[:print:]]* .[[:print:]]* )
for i in ${l[@]} ; …Run Code Online (Sandbox Code Playgroud) 我试图绘制关于某些迭代值的持续时间(以秒为单位)。我通过减去两个日期时间值来计算持续时间值。然后,我想使用现有工具以非常简单的方式绘制这些结果。
我的代码如下,但它还不起作用:
#!/usr/bin/env python
import datetime
import matplotlib.pyplot as plt
from numpy import arange
it = arange(10)
durations = [datetime.timedelta(hours=h+30) for h in it]
plt.plot(it, durations)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
TypeError: float() argument must be a string or a number
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过使用 datetime 而不是 timedelta 来使其工作,但我的目标是以小时为单位(大约 40 小时)绘制持续时间,因此渲染效果不佳。
我有一个包含许多NPY文件的压缩文件(file1.npy,file2.npy,file3.npy,...)。我想单独加载它们而不在文件系统上提取 zipfile。我已经尝试了很多东西,但我无法弄清楚。
我的猜测是:
import zipfile
import numpy as np
a = {}
with zipfile.ZipFile('myfiles.zip') as zipper:
for p in zipper.namelist():
with zipper.read(p) as f:
a[p] = np.load(f)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?