使用Python读取、添加和保存CSV文件。

2024-05-20 19:23:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在做的一些python脚本有一些问题。整个脚本的思想是阅读一个包含4列“朋友”的csv文档。他们的名字,地址,电话号码和生日。现在,我已经写了一些代码,但是有一些问题。在

  1. 我有load_friends定义的代码,但是它似乎只是打开csv的代码,而不是在加载函数时打开csv。在
  2. 我真的很难找到合适的教程来编写代码,在函数之后向csv文件中添加一行新行,因此,添加_friend(姓名、地址、ph号、生日),输入,然后将其添加到csv中。在

如果有人能帮上忙,我将不胜感激!在

我的代码:

def load_friends():
    """Loads the friends.csv file from disk
    """
reader = csv.reader(open("friends.csv", "rb"))
for row in reader:
    print row


def save_friends():
    print row

def add_friend():
    """Writes a new entry to friends.csv via Python commands
    """
    aCSVReader = csv.reader(open('friends.csv', 'rb'), delimiter=' ', quotechar='|')
    for row in aCSVReader:
        print ', '.join(row)

Tags: csv函数代码friend脚本for地址def
3条回答

打开csv,加载并将其内容转储到stdout。在

加上朋友做同样的事情,我不明白你想做什么。在

更有用的版本可以是:

def load_friends ():
    with open('friends.csv', 'rb') as f:
        for name, phone, address, birthday in csv.reader(f, delimiter=' ', quotechar='|'):
            # do something with name, phone, etc.


def add_friend (name, phone, address, birthday):
    with open('friends.csv', 'ab') as f:
        newrow = [name, phone, address, birthday]
        csv.writer(f, deliminter=' ', quotechar='|').writerow(newrow)

add_friend在文件末尾添加一行'朋友.csv'(以“a”模式打开)。在

以下是一些提示:

在下面的函数中,您需要修复缩进…这在Python中很重要。不知道这是不是剪切和粘贴的产物,但这是一个很容易解决的问题。在

def load_friends():
    """Loads the friends.csv file from disk
    """
reader = csv.reader(open("friends.csv", "rb"))
for row in reader:
    print row

add_friend()中,您正在打开要读取的文件…您可能想用'ab'模式打开它(append binary)。如果以写模式(“w”)打开它,则现有内容将被清除。除非你打算把所有的朋友都记在记忆里,每次都写出来,否则这不会达到你所期望的效果。在

另外,为什么要将分隔符字符改为“”?如果是标准的CSV,这可能也不是你想要的。在

csv假定每行之间有新行,因此下面的代码应该可以满足您的需要。在

writer = csv.writer(open('friends.csv', 'ab'))  
.....      
def add_friend(name, address, ph_number, birthday):
    """write a row to the friends.csv file
    """
    writer.writerow([name, address, ph_number, birthday])

相关问题 更多 >