可能重复:
如何测量函数运行的时间?
我有一个I/O计时方法,可以将数据从一个位置复制到另一个位置.什么是计算执行时间的最佳和最实际的方法?Thread?Timer?Stopwatch?还有其他方法吗?我想要最精确的一个,尽可能简短.
我正在使用子进程模块启动子进程并连接到它的输出流(stdout).我希望能够在其标准输出上执行非阻塞读取.有没有办法让.readline非阻塞或在我调用之前检查流上是否有数据.readline?我希望这是可移植的,或至少在Windows和Linux下工作.
这是我现在如何做到的(.readline如果没有数据可用,则阻止它):
p = subprocess.Popen('myprogram.exe', stdout = subprocess.PIPE)
output_str = p.stdout.readline()
Run Code Online (Sandbox Code Playgroud) 为了清楚起见,我不是在寻找MIME类型.
假设我有以下输入: /path/to/file/foo.txt
我想要一种方法来打破这种输入,特别.txt是扩展.在Java中有没有内置的方法来做到这一点?我想避免编写自己的解析器.
我惊讶地发现,今天,我不能追查任何简单的方法的内容写入InputStream到OutputStreamJava中.显然,字节缓冲区代码并不难写,但我怀疑我只是遗漏了一些会让我的生活更轻松(代码更清晰)的东西.
那么,给定一个InputStream in和一个OutputStream out,是否有更简单的方法来编写以下内容?
byte[] buffer = new byte[1024];
int len = in.read(buffer);
while (len != -1) {
out.write(buffer, 0, len);
len = in.read(buffer);
}
Run Code Online (Sandbox Code Playgroud) 我使用的是Python 3.2.1,我无法导入StringIO模块.我使用
io.StringIO和它的作品,但我不能使用它numpy的genfromtxt是这样的:
x="1 3\n 4.5 8"
numpy.genfromtxt(io.StringIO(x))
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
TypeError: Can't convert 'bytes' object to str implicitly
Run Code Online (Sandbox Code Playgroud)
当我写import StringIO它时说
ImportError: No module named 'StringIO'
Run Code Online (Sandbox Code Playgroud) 我正在使用.NET 3.5,尝试使用以下命令递归删除目录:
Directory.Delete(myPath, true);
Run Code Online (Sandbox Code Playgroud)
我的理解是,如果文件正在使用或存在权限问题,这应该抛出,否则它应该删除目录及其所有内容.
但是,我偶尔会得到这个:
System.IO.IOException: The directory is not empty.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive)
...
Run Code Online (Sandbox Code Playgroud)
我对这种方法有时会抛出并不感到惊讶,但是当递归为真时,我很惊讶地得到这条特殊的信息.(我知道目录不是空的.)
有没有理由我看到这个而不是AccessViolationException?
我在理解文本读取和写入文件时遇到了一些大脑失败(Python 2.4).
# The string, which has an a-acute in it.
ss = u'Capit\xe1n'
ss8 = ss.encode('utf8')
repr(ss), repr(ss8)
Run Code Online (Sandbox Code Playgroud)
("u'Capit\xe1n'","'Capit\xc3\xa1n'")
print ss, ss8
print >> open('f1','w'), ss8
>>> file('f1').read()
'Capit\xc3\xa1n\n'
Run Code Online (Sandbox Code Playgroud)
所以我输入Capit\xc3\xa1n我最喜欢的编辑器,在文件f2中.
然后:
>>> open('f1').read()
'Capit\xc3\xa1n\n'
>>> open('f2').read()
'Capit\\xc3\\xa1n\n'
>>> open('f1').read().decode('utf8')
u'Capit\xe1n\n'
>>> open('f2').read().decode('utf8')
u'Capit\\xc3\\xa1n\n'
Run Code Online (Sandbox Code Playgroud)
我在这里不理解什么?显然,我缺少一些重要的魔法(或者很有道理).在文本文件中键入什么来获得正确的转换?
我真正没有想到的是,UTF-8表示的重点是,如果你真的不能让Python识别它,那么它来自外部.也许我应该只是JSON转储字符串,并使用它,因为它有一个asciiable表示!更重要的是,当从文件进入时,Python会识别和解码这个Unicode对象的ASCII表示吗?如果是这样,我怎么得到它?
>>> print simplejson.dumps(ss)
'"Capit\u00e1n"'
>>> print >> file('f3','w'), simplejson.dumps(ss)
>>> simplejson.load(open('f3'))
u'Capit\xe1n'
Run Code Online (Sandbox Code Playgroud) 使用Java:
我有一个byte[]代表文件.
如何将其写入文件(即.C:\myfile.pdf)
我知道它已经完成了InputStream,但我似乎无法解决它.
有人向我解释什么InputStream和OutputStream是谁?
我感到困惑的用例都InputStream和OutputStream.
如果您还可以包含一段代码以与您的解释一起使用,那就太棒了.谢谢!
我正在将结构序列化为a MemoryStream,我想保存并加载序列化结构.
那么,如何将MemoryStream文件保存到文件中并将其从文件中加载回来?
io ×10
java ×4
c# ×3
file ×3
python ×3
.net ×2
inputstream ×2
stream ×2
arrays ×1
exception ×1
memorystream ×1
nonblocking ×1
outputstream ×1
python-3.x ×1
stopwatch ×1
subprocess ×1
timer ×1
unicode ×1
utf-8 ×1