我是python的新手,并且一直面临着使用python 2.5.1版本编辑.csv文件的问题。
我的目标是将所有','替换为'。'在csv数据中。
这是我能走多远。
import csv
import re
def replace_all(text, dic):
for i, j in dic.iteritems():
text = text.replace(i, j)
return text
f_dic = {',':'.'}
with open('file.csv','r') as f:
text=f.read()
with open('file+.csv','w') as w:
text=replace_all(text,f_dic)
print text
w.write(text)
当我运行它时显示 - 将'open'作为无效语法。
感谢任何帮助。
答案 0 :(得分:4)
要解决语法错误,在Python 2.5中,您需要:
from __future__ import with_statement
使用with
语句。它仅在Python 2.6及更高版本中默认可用。
请注意,您不使用导入的csv
和re
模块。 re
是不必要的,但如果您关心引用和转义,您可能希望使用csv读取器的正常默认值读取该文件,并使用分隔符“。”进行写入。而不是简单地替换东西。您编写的代码仅在现有数据中没有.
时才有效,并且不会转换或引用,
不应转换的代码。根据您将如何使用该文件,将其命名为“something.csv”也可能是一个坏主意,因为它不再是以逗号分隔的实际数据。
答案 1 :(得分:0)
看起来你正试图将分隔符从逗号更改为句点。如果是这种情况,则无需打开为csv,只需打开文本并替换所有','
with open('file.csv', w) as fp:
text = f.read()
text.replace(',' , '.')
fp.tell(0);
fp.write(text)