有一个程序通过重复覆盖stderr. 操作如下:
当它想s用另一行覆盖一行时s',它s'用空格s填充,直到它至少与“回车”字符一样长:
n <- gets lastLineLength
let s'Padded | 0 < n = '\r': s' ++ replicate (n - length s') ' '
| otherwise = s'
hPutStr stderr s'Padded
Run Code Online (Sandbox Code Playgroud)这工作得很好。(虽然我个人没有在通常的 Linux 终端以外的情况下测试过它。)
我着手改进这个程序,用String一种Doc类型来代替普通的,ansi-wl-pprint这样我就可以用颜色来绘制文本,就像最近的 GHC 运动一样。像这样的库可能有点矫枉过正,因为我只需要一次输出几行,而且没有任何缩进,但我想尝试一下它的抽象着色设施。但是,我认为这个库(或任何漂亮的打印库)不会具有旨在擦除以前打印的Docs 的功能。
我想到的一种解决方案是Doc将 a渲染为 aString并测量其长度。但是,我将不得不为颜色代码打折;此外,这总体上是对库提供的抽象的侵入:具体来说,我将不得不依赖这样一个假设,即我手动执行的渲染将与hPutDoc.
我是否应该完全放弃该库并继续处理Strings,手动输入 ANSI 转义序列和回车?有没有更好的方法来覆盖以前的输出?我欢迎任何建议。
我有一个 PS 脚本,它在变量 ant 中获取 JSON,然后将其保存在文件中。
不幸的是,它在一个字符串中获取值,如下所示:
{ "persistentdataapi": "https://somevalue.azurewebsites.net/", "collectioncountapi": "https://anothervalue.azurewebsites.net/", "eventserviceapi": "https://thirdvalue.azurewebsites.net/", "securityserviceapi": "https://fourthvalue.azurewebsites.net/" }
Run Code Online (Sandbox Code Playgroud)
有没有办法通过某种(最好是 PS)JSON 格式来处理这个值,以获得这个:
{
"persistentdataapi": "https://somevalue.azurewebsites.net/",
"collectioncountapi": "https://anothervalue.azurewebsites.net/",
"eventserviceapi": "https://thirdvalue.azurewebsites.net/",
"securityserviceapi": "https://fourthvalue.azurewebsites.net/",
}
Run Code Online (Sandbox Code Playgroud)
在 Jenkins 中获取价值的代码:
Import-Module "C:\Program Files\WindowsPowerShell\Modules\Octopus-Cmdlets\0.4.4\Octopus-Cmdlets.psd1"
connect-octoserver http://internal-Octopus.azure.com:8082 API-123456789012345678
$raw = (Get-OctoVariable var.Portal.Web DataAPIJson | Where-Object { $_.Environment -eq "QA" } )
$raw.Value | Out-File "$env:WORKSPACE\portal\var.Portal.Web\dataapi.json"
Run Code Online (Sandbox Code Playgroud) 我想查看代码直到特定点的完整跟踪
所以我这样做
...
import traceback
traceback.print_stack()
...
Run Code Online (Sandbox Code Playgroud)
然后就会显示
File ".venv/lib/python3.7/site-packages/django/db/models/query.py", line 144, in __iter__
return compiler.results_iter(tuple_expected=True, chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
File ".venv/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1052, in results_iter
results = self.execute_sql(MULTI, chunked_fetch=chunked_fetch, chunk_size=chunk_size)
File ".venv/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1100, in execute_sql
cursor.execute(sql, params)
File ".venv/lib/python3.7/site-packages/django/db/backends/utils.py", line 110, in execute
extra={'duration': duration, 'sql': sql, 'params': params}
File "/usr/lib64/python3.7/logging/__init__.py", line 1371, in debug
self._log(DEBUG, msg, args, **kwargs)
File "/usr/lib64/python3.7/logging/__init__.py", line 1519, in _log
self.handle(record)
File "/usr/lib64/python3.7/logging/__init__.py", line 1528, in handle
if (not self.disabled) and self.filter(record):
File "/usr/lib64/python3.7/logging/__init__.py", line …Run Code Online (Sandbox Code Playgroud) 当我出于机器学习目的标记图像或文本时,我经常以某种格式导出结果json。然后,我可以打开它vim并使用简单的漂亮打印
:execute '%!python -m json.tool'
Run Code Online (Sandbox Code Playgroud)
我经常添加| w它自动将更改写入文件。
有没有办法扭转这个过程?为了压缩json,所以没有多余的字符?
{
"name": "John",
"email": "john@smith.co.uk"
}
Run Code Online (Sandbox Code Playgroud)
{"name":"John","email":"john@smith.co.uk"}
Run Code Online (Sandbox Code Playgroud)
我会对 Vimish、Pythonish 和 Bashish 解决方案感到满意。
如何将 Kafka 控制台消费者的响应漂亮地打印为 JSON。我已经尝试过这个,但它不起作用。
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic indexing-v1
--from-beginning | python -m json.tool
Run Code Online (Sandbox Code Playgroud) Python数据类实例还包括一个字符串表示方法,但是当类具有多个字段和/或更长的字段值时,它的结果对于漂亮的打印目的来说并不足够。
基本上,我正在寻找一种方法来自定义默认的数据类字符串表示例程,或者寻找一种理解数据类并更漂亮地打印它们的漂亮打印机。
所以,这只是我想到的一个小自定义:在每个字段之后添加一个换行符,同时在第一个字段之后缩进行。
例如,代替
x = InventoryItem('foo', 23)
print(x) # =>
InventoryItem(name='foo', unit_price=23, quantity_on_hand=0)
Run Code Online (Sandbox Code Playgroud)
我想得到这样的字符串表示:
x = InventoryItem('foo', 23)
print(x) # =>
InventoryItem(
name='foo',
unit_price=23,
quantity_on_hand=0
)
Run Code Online (Sandbox Code Playgroud)
或者类似的。也许漂亮的打印机可以变得更漂亮,例如对齐=分配字符或类似的东西。
当然,它也应该以递归方式工作,例如,也是数据类的字段应该缩进更多。
是否可以编写一个REGEX(搜索替换),当在XML字符串上运行时,输出的XML字符串会很好地缩进?
如果是这样的话REGEX :)
我有一个号码9877342931235.使用Haskell,我需要将其显示为:
987-734293-123-5
我试过穿插列表,但当然在每个数字之间加上' - '.我该怎么做才能得出实际结果呢?
是否Visual Studio中有能力,还是有一个VS插件,这将重新ASP.NET和HTML标记(即执行漂亮的打印).具体而言,我希望它把所有的属性或属性按字母顺序为每个标签,可能有一些例外的是,用户可以指定,说在配置文件中.此外,根据用户的规范,每个属性或属性可以选择放在单独的行上.
例如,请考虑以下事项:
<asp:TextBox ID="txtPlanStart" runat="server" ToolTip="start date" Columns="8">
Run Code Online (Sandbox Code Playgroud)
重新格式化的版本将是:
<asp:TextBox ID="txtPlanStart" runat="server"
Columns="8"
ToolTip="start date" />
Run Code Online (Sandbox Code Playgroud)
请注意,重新格式化的版本不是严格按字母顺序排列,也不是单独排列,因为ID和runat是第一位的.同样,重新格式化的例外可以由用户指定.
如果VS中没有集成此功能,是否还有其他实用程序?
使用Swift 2.2,我曾经像这样美化XML:
let detxTag = NSXMLElement(name: "detx")
let xml = NSXMLDocument(rootElement: detxTag)
// ...
let data = xml.XMLDataWithOptions(NSXMLNodePrettyPrint | NSXMLNodeCompactEmptyElement)
Run Code Online (Sandbox Code Playgroud)
不幸的是,使用此代码不再使用Swift 3(由Xcode 8自动转换):
let detxTag = XMLElement(name: "detx")
let xml = XMLDocument(rootElement: detxTag)
// ...
let data = xml.xmlData(withOptions: NSXMLNodePrettyPrint)
Run Code Online (Sandbox Code Playgroud)
它会产生以下错误:
Use of unresolved identifier 'NSXMLNodePrettyPrint'
Run Code Online (Sandbox Code Playgroud)
似乎进/出选项已经改变但是如何使用它并不是很清楚:https://developer.apple.com/reference/foundation/xmldocument/input_and_output_options
任何的想法?