用'。'代替','在python 2.5.1的CSV文件中

时间:2014-01-10 13:43:25

标签: python csv

我是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'作为无效语法。

感谢任何帮助。

2 个答案:

答案 0 :(得分:4)

要解决语法错误,在Python 2.5中,您需要:

from __future__ import with_statement

使用with语句。它仅在Python 2.6及更高版本中默认可用。

请注意,您不使用导入的csvre模块。 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)