как доступ к файлу одновременно добавлять / редактировать / удалять данные? - PullRequest
0 голосов
/ 19 января 2012

Я хочу создать текстовый файл и построчно добавить в него данные.Если строка данных уже существует в файле, ее следует игнорировать.В противном случае он должен быть добавлен в файл.

Ответы [ 3 ]

2 голосов
/ 19 января 2012

Вам почти наверняка лучше прочитать файл и написать новую измененную версию.В большинстве случаев это будет быстрее, проще, менее подвержено ошибкам и более расширяемым.

1 голос
/ 19 января 2012

Если ваш файл не такой большой, вы можете просто сделать что-то вроде этого:

added = set()

def add_line(line):
    if line not in added:
        f = open('myfile.txt', 'a')
        f.write(line + '\n')
        added.add(line)
        f.close()

Но это не очень хорошая идея, если вам нужно беспокоиться о параллелизме, поскольку большие объемы данныххранится в файле, или в основном что-либо, кроме чего-то быстрого и одноразового.

0 голосов
/ 16 февраля 2012

Я так и сделал,

def retrieveFileData():
    """Retrieve Location/Upstream data from files"""
    lines = set()
    for line in open(LOCATION_FILE):
        lines.add(line.strip())
    return lines

def add_line(line):
    """Add new entry to file"""
    f = open(LOCATION_FILE, 'a')
    lines = retrieveFileData()
    print lines
    if line not in lines:
        f.write(line + '\n')
        lines.add(line)
        f.close()
    else:
        print "entry already exists"

if __name__ == "__main__":
    while True:
        line = raw_input("Enter line manually: ")
        add_line(line)
        if line == 'quit':
            break
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...