[使用Python编辑CSV文件中的数据

问题描述 投票:0回答:1

我正在使用Python将数据写入记事本(.txt)文件。实体之间以逗号(',')分隔。该文件称为“ Database2.txt”。

变量'yearlynew'包含一个浮点值,该值将替换一部分现有数据。我尝试了多种方法将上述数据写入文件,但无法使其正常工作。

这是我到目前为止的代码:

g = open('Database2.txt', 'r')
for line in g:
    CurrentLine = line.split(',')
    if CurrentLine[0] == account:
        g = open('Database2.txt', 'a')
        #CurrentLine[3] = yearlynew
        #g(CurrentLine[3]).write(yearlynew)
        #CurrentLine[3].write(yearlynew)

任何带有'#'的内容都表示我尝试过的方法失败。如果有人对如何操作有任何建议,我将不胜感激。

我应该注意,CurrentLine [0]标识用户名(位于文件的第一列中),以便任何登录的用户都可以编辑其数据及其数据。 “帐户”保留当前登录用户的用户名,并允许程序跟踪文件以查找用户的统计信息。用户数据(例如名称和密码)存储在单独的文件中,并且此功能不需要。

这是文件的内容:

Ellie121,0.16,5,60,

Sam232,0.2,6,72,

Heather343,0.1,3,36,

Connor454,0.35,10.5,126,

Ryan565,0.15,4.5,54,

Matthew676,0.22,6.6,79.2,

python-3.x csv
1个回答
0
投票

我认为您不能只将文本插入文件中。我认为您必须将新数据写入另一个文件,然后重命名。这就是我要做的:

import os

account = 'Sam232'
yearlynew = '3.14159'

temp = open ('temporary_file', 'w')
g = open ('Database2.txt', 'r')
for line in g :
    CurrentLine = line.split (',')
    if CurrentLine [0] == account :
        CurrentLine [1] = yearlynew
    OutputLine = ','.join (CurrentLine)
    temp.write (OutputLine)
g.close ()
temp.close ()

os.remove ('Database2.txt')
os.rename ('temporary_file', 'Database2.txt')
© www.soinside.com 2019 - 2024. All rights reserved.