1. 问题描述
问题开始是无法利用awk命令提取文件指定内容
vim编译器打开这个文件也没有任何不妥,每一行后面没有显示其他字符(如^M)
后来发现每一行的数据后面有\r,而这个不是我自己加的。。。
我是利用csv的writerow方法,把每一行数据写入文件的,会自动添加\n换行符
2. 解决方案
2.1 重新写入csv文件
后来查看python3官方文档,发现csv文件读写时,最好添加 newline=''
这个参数,否则每一行数据后都会被追加一个\r,然后才是\t
对于python2.7,可以进行如下操作:
with open(fn, 'wb') as fout:
for label, cnt in city_value.iteritems():
writer = csv.writer(fout, delimiter=' ',lineterminator='\n')
writer.writerow((label, cnt))
即以空格来分隔每一列,每一行末位只要换行符。
2.2 直接利用awk命令
那么不改变文件的情况下,怎么利用awk命令执行呢?原来文件是用逗号分隔的,更改分割参数就好了。