- 论坛徽章:
- 0
|
原因:
我有一行 2G 的数据需要处理,但是 sed 存在泄漏,导致程序崩溃。
解决方法:
用 python 实现 sed 功能;
困难:
python 传入包含转义字符的时候有问题,总是报错。
如果我最后一个参数写为:'\n',调试时发现传入的参数为 "\\n"
暂时没有从网络上找到相关资料,所以请教大家一个问题:
对于含有转义字符的参数,python程序应该如何接受和处理
附程序片段:
def sed(ori_f_obj, tar_f_obj, replaced_char, substitution_char):
while True:
d = ori_f_obj.read(8096);
if not d:
break;
tar_f_obj.write(d.replace(replaced_char, substitution_char));
if __name__=="__main__":
if len(sys.argv) < 5 or len(sys.argv) > 5:
print("Error: There must be four arguments to be give and set");
print("Usage: ./sed.py ori_file_name target_file_name to_be_replaced_character substitution_character");
exit(1);
ori_file_name = sys.argv[1];
target_file_name = sys.argv[2];
to_be_replaced_character = sys.argv[3];
substitution_character = sys.argv[4];
if os.path.exists(ori_file_name):
ori_file_object = open(ori_file_name,"r");
target_file_object = open(target_file_name,"w+");
sed(ori_file_object,target_file_object,to_be_replaced_character,substitution_character);
ori_file_object.close();
target_file_object.close();
print("Sed by Python ... Done!"); |
|