在学习python时,我遇到了这个代码,它接受一个文本文件,将每一行拆分成一个数组,并将其插入到一个自定义字典中,其中数组[0]是键,数组[1]是值:
my_dict = {}
infile = open("file.txt")
for line in infile:
#line = line.strip()
#parts = [p.strip() for p in line.split("\t")]
parts = [p for p in line.split("\t")]
my_dict[parts[0]] = parts[1]
print line
for key in my_dict:
print "key: " + key + "\t" + "value " + my_dict[key]
Run Code Online (Sandbox Code Playgroud)
我在关闭和打开注释行的情况下运行程序,得到了相同的结果.(当然用它下面的一行替换第二个注释行.)在我看来,做一个strip()是可选的.留下它是更好的做法吗?
事实证明,iptables不能很好地处理前导零.由于$machinenumber
使用它必须在其中有一个前导零用于其他目的,这个想法只是创建一个新的变量($nozero
)$machinenumber
,其中前导零被剥离.
$machinenumber
是01到24之间的两位数.目前是09
$machinetype
现在是74,并没有造成任何问题.
到目前为止我所拥有的是:
nozero = (echo $machinenumber | sed 's/^0*//')
iptables -t nat -I POSTROUTING -s 10.($machinetype).($nozero).0/24 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)
虽然我相信我走在正确的轨道上,但代码导致:
ERROR - Unknown string operation
Run Code Online (Sandbox Code Playgroud) 如果二进制文件大小不是问题,使用-g是否有任何缺点,而不是在性能关键环境中运行的条带二进制文件?我有很多磁盘空间,但二进制文件是cpu密集型并使用大量内存.二进制文件加载一次,并且存活了几个小时.
编辑:
我想将二进制文件与调试信息一起使用的原因是在出现分段错误时生成有用的核心转储.
我想尽可能多地剥离 - 在Linux上:一个ELF.我只想在那里运行它需要的东西.
我试过用strip
:
strip --strip-all elf
Run Code Online (Sandbox Code Playgroud)
但它似乎没有做得好:nm
仍然显示很多东西,二进制文件仍然很大.
我该怎么办?
我们最近被要求发布我们的一个库的Linux版本,以前我们在Linux下开发并发布用于Windows,其中部署库通常要容易得多.我们遇到的问题是将导出的符号剥离到只有暴露界面中的符号.想要这样做有三个很好的理由
举一个简单的例子:
TEST.CPP
#include <cmath>
float private_function(float f)
{
return std::abs(f);
}
extern "C" float public_function(float f)
{
return private_function(f);
}
Run Code Online (Sandbox Code Playgroud)
用(g ++ 4.3.2,ld 2.18.93.20081009)编译
g++ -shared -o libtest.so test.cpp -s
Run Code Online (Sandbox Code Playgroud)
用符号检查符号
nm -DC libtest.so
Run Code Online (Sandbox Code Playgroud)
给
w _Jv_RegisterClasses
0000047c T private_function(float)
000004ba W std::abs(float)
0000200c A __bss_start
w __cxa_finalize
w __gmon_start__
0000200c A _edata
00002014 A _end
00000508 T _fini
00000358 T _init
0000049b T public_function
Run Code Online (Sandbox Code Playgroud)
显然不足.接下来我们重新宣布公共职能为
extern "C" float __attribute__ ((visibility ("default")))
public_function(float f)
Run Code Online (Sandbox Code Playgroud)
并编译
g++ …
Run Code Online (Sandbox Code Playgroud) 假设我编译了下面的应用程序并删除了它的符号.
#include <stdio.h>
int main()
{
printf("Hello\n");
}
Run Code Online (Sandbox Code Playgroud)
构建过程:
gcc -o hello hello.c
strip --strip-unneeded hello
Run Code Online (Sandbox Code Playgroud)
如果应用程序没有被剥离,则拆卸主要功能将很容易.但是,我不知道如何反汇编应用程序的主要功能.
(gdb) disas main
No symbol table is loaded. Use the "file" command.
(gdb) info line main
Function "main" not defined.
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?它甚至可能吗?
注意:这必须仅使用GDB.忘掉objdump.假设我无权访问代码.
我们将非常感谢一步一步的例子.
我需要从字符串中删除特定的单词.
但我发现python strip方法似乎无法识别一个有序的单词.刚剥离传递给参数的任何字符.
例如:
>>> papa = "papa is a good man"
>>> app = "app is important"
>>> papa.lstrip('papa')
" is a good man"
>>> app.lstrip('papa')
" is important"
Run Code Online (Sandbox Code Playgroud)
我怎么能用python剥离一个指定的单词?
我有一个带有一些HTML的QString ...是否有一种简单的方法可以从中删除HTML?我基本上只想要实际的文本内容.
<i>Test:</i><img src="blah.png" /><br> A test case
Run Code Online (Sandbox Code Playgroud)
会成为:
Test: A test case
Run Code Online (Sandbox Code Playgroud)
我很想知道Qt是否有字符串函数或实用程序.
该TestFlight SDK建议设置Strip Debug Symbols During Copy
到YES
在Xcode构建设置,以实现最佳崩溃报告可能的.我注意到它YES
默认设置为.
我应该改成YES
吗?为什么或者为什么不?
jQuery( htmlString ).text();
Run Code Online (Sandbox Code Playgroud)
虽然这抽象了浏览器的不一致性(例如innerText
vs. textContent
),但函数调用也忽略了块级元素(例如li
)的语义含义.
正如Mike Wilcox描述的那样,在各种浏览器中保留块级元素的新行(即语义意图)需要不小的努力.
一个看似更简单的解决方案是模拟将HTML内容粘贴到a中<textarea>
,在保留块级元素换行符的同时剥离HTML.但是,基于JavaScript的插入不会触发用户将内容粘贴到其中时浏览器使用的相同HTML到文本例程<textarea>
.
我也尝试整合Mike Wilcox的JavaScript代码.该代码适用于Chromium,但不适用于Firefox.
什么是从HTML中提取文本的最简单的跨浏览器方式,同时使用jQuery(或vanilla JavaScript)保留块级元素的语义换行符?
考虑:
textarea保留有序列表,标题,预格式文本等的换行符.这是我想要实现的结果.
为了进一步说明,给定任何HTML内容,例如:
<h1>Header</h1>
<p>Paragraph</p>
<ul>
<li>First</li>
<li>Second</li>
</ul>
<dl>
<dt>Term</dt>
<dd>Definition</dd>
</dl>
<div>Div with <span>span</span>.<br />After the <a href="...">break</a>.</div>
Run Code Online (Sandbox Code Playgroud)
你会如何生产:
Header Paragraph First Second Term Definition Div with span. After the break.
注意:缩进和非规范化的空格都不相关.
strip ×10
gcc ×3
linux ×3
c ×2
html ×2
python ×2
string ×2
bash ×1
c++ ×1
clang ×1
disassembly ×1
elf ×1
executable ×1
gdb ×1
javascript ×1
jquery ×1
optimization ×1
qt ×1
testflight ×1
text ×1
xcode ×1