我想从不同长度的变量中提取最后两个字段值.例如,考虑以下三个值:
fe80::e590:1001:7d11:1c7e
ff02::1:ff1f:fb6
fe80::7cbe:e61:f5ab:e62 ff02::1:ff1f:fb6
Run Code Online (Sandbox Code Playgroud)
这三条线的长度可变.如果我用分隔符分割每一行,我想只提取最后两个字段值:
也就是说,从三行开始,我想:
7d11, 1c7e
ff1f, fb6
ff1f, fb6
Run Code Online (Sandbox Code Playgroud)
这可以用split()吗?我没有得到任何想法.
从一个文件,我已经采取了一条线,使用分为5列split().但我必须在输出文件中将这些列写为制表符分隔值.
可以说我有l[1], l[2], l[3], l[4], l[5]...总共5个条目.我如何使用python实现这一目标?而且,我无法将l[1], l[2], l[3], l[4], l[5]值写入输出文件.
我尝试了这两个代码,两个都不工作(我使用的是python 2.6):
代码1:
with open('output', 'w'):
print l[1], l[2], l[3], l[4], l[5] > output
Run Code Online (Sandbox Code Playgroud)
代码2:
with open('output', 'w') as outf:
outf.write(l[1], l[2], l[3], l[4], l[5])
Run Code Online (Sandbox Code Playgroud) 此代码导致分段错误:
int main(){
char *p;
char a[50] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
p = (char *)malloc(50*sizeof(char));
if(!p){
cout << "Allocation Failure";
cout << "\n";
}
else{
cout << "Allocation Success";
cout << "\n";
p = a;
cout << p;
cout << "\n";
free(p);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
执行该程序后的输出是:
Allocation Success
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Segmentation fault
Run Code Online (Sandbox Code Playgroud)
我无法找到错误.可能是什么原因?