【发布时间】:2017-06-28 03:59:04
【问题描述】:
这是我名为myDB.txt的数据库:
28273139
iPhone
5.50
30
5
35
81413852
Book
1.50
43
10
55
文本文件数据库遵循格式
Product Code
Product Name
Price
Current Stock
Reorder Stock (the lowest the stock can go)
Target Stock
现在,我想更新 iPhone 数据。 这是 iPhone 数据。
28273139
iPhone
5.50
30
5
35
它使用8位产品代码来识别产品。
我已经编写了以下代码。
userCode = "28273139"
newstock = "29"
database = open('myDB.txt','r+')
while(str(userCode) not in next(database)):
pass
else:
for i in range(3):
line = next(database)
replace = line.replace(line,newstock)
database.write(replace)
我想将列表的第 4 个值,数字 30 更改为数字 29,我将其声明为变量 newstock。 程序向下移动 3 行,因为数据库中每个产品的格式都相同,并用这个新值替换该行。
我需要更新 iPhone 数据的结果 -
28273139
iPhone
5.50
29
5
35
但是,这种方法不起作用。
我每次都收到一个错误。
AttributeError: 'str' object has no attribute 'readlines'
有人可以帮助解决我的问题吗?我编写的代码是否正确以产生所需的结果?
【问题讨论】:
-
您说您遇到了一些错误。可以发在这里吗?
-
@MaLiN2223 已发布!
AttributeError: 'str' object has no attribute 'readlines' -
您正试图将第 3 行向前移动,但该行不是迭代器,它是一个字符串,所以 readlines 在这里不起作用
-
readlines() 读取文件中的所有行,所以它是文件的方法,而不是字符串。
-
我讨厌成为“那个人”,但你有没有考虑过不滚动你自己的数据库?在使用
sqlite3时,我看到了很多好处,而几乎没有坏处。看起来更简单、更不容易出错且更灵活。
标签: python python-3.x text-files readlines