我有一些日志文件,我的批处理脚本需要能够读取和解析.
我遇到了一个问题,我的FOR循环可以读取大多数文件,但无法读取特定的文件.如果我在命令提示符窗口中运行
for /f %Z in (N151204.log) do echo %Z
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但在不同文件上的语法完全相同:
for /f %Z in (IN151205.log) do echo %Z
Run Code Online (Sandbox Code Playgroud)
给我:
系统找不到文件IN151205.log.
我可以读文件IN151205.log用
more IN151205.log
Run Code Online (Sandbox Code Playgroud)
没问题.因此,就我所知,它似乎不是权限问题或读锁定.
为什么for循环有这个特定文件的问题?
假设我有一个功能:
def ReadFile():
with open("/etc/passwd") as file:
data = file.read()
Run Code Online (Sandbox Code Playgroud)
这个函数可能会成功,在这种情况下它需要返回一个结果,或者它可能会失败,在这种情况下我想返回一个异常的回溯,它会通过电子邮件发送给我,所以我知道我的程序中出现了一些错误,确切地说什么失败了。
为此,我可以执行以下操作:
import traceback
def ReadFile():
try:
with open("/etc/passwd") as file:
data = file.read()
except IOError:
return traceback.format_exc()
return data
Run Code Online (Sandbox Code Playgroud)
如果能够成功读取文件,则返回文件的内容。否则,它返回异常的回溯。
traceback.format_exc() 返回一个字符串。如果 ReadFile() 应该返回一个列表或元组或整数(如果它成功),那么事情就很简单了——当你调用 ReadFile() 时,如果返回的结果是一个字符串,你就知道它失败了,你可以运行发送电子邮件的代码您知道错误,如果结果是您期望的类型(int、tuple、list 或 w/e),那么您就知道它起作用了。
如果 ReadFile() 应该返回一个字符串,就像在我的例子中那样,那么比确定 ReadFile() 是成功还是失败变得更加困难,因为您需要解析字符串以确定它是否看起来像回溯或你预期的结果。
有一个更好的方法吗?也许某种方式让回溯返回某种对象,其信息与 traceback.format_exc() 包含的信息相同,以便更容易确定 ReadFile() 是成功还是失败?
is在Python中测试2个引用是否指向同一个对象.-5到256之间的数字在内部缓存,因此:
a = 10
b = 10
a is b # Results in True
Run Code Online (Sandbox Code Playgroud)
这是如何解释的:
20000 is 20000 # Results in True
Run Code Online (Sandbox Code Playgroud)
这两个数字都高于256. 2个整数不应该是2个不同的对象吗?
我正在使用IP摄像头.我可以使用这样的URL从相机中获取静态图像:
HTTP://用户名:密码@ IP_of_Camera:端口/流/信道/ 1 /图象
我想要做的是让python/flask在客户端加载页面时从该URL下载图像,并使用img标记将图像嵌入到页面中.
如果我有一个看起来像这样的模板:
<html>
<head>
<title>Test</title>
</head>
<body>
<img src="{{ image }}">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如何用下载的图像替换{{image}}?
我是否会使用urllib/requests将图像下载到flask的静态文件夹中,将{{image}}替换为类似的内容{{ url_for('static', filename="temp_image.png") }},然后在页面加载时从静态文件夹中删除图像?我会在其他地方下载它(静态文件夹除外)吗?或者还有其他方法可以将图像保存在内存中吗?
PS.我知道可以直接用该URL替换{{image}},但是会向客户端显示相机的用户名/密码/ IP /端口.