我希望能够以良好的设置布局读取和写入文本文件。
这是我到目前为止对文件进行读写的内容。非常基本,但完美的工作。
写文件:
def writefile():
file = open("database.txt","w")
file.write("Testing.. Testing.. 123.")
file.close()
print("Written on file [database.txt] successful")
阅读文件:
def readfile():
file = open("database.txt","r")
print(file.read())
file.close()
但是,我需要它,以便我可以在一个文件中正确处理ID和TEAMNAME。 我需要这个布局或类似的。
这个布局在一个名为database.txt
的文本文件中TEAMNAME: MISFITS, ID: 250
TEAMNAME: BLUES, ID: 170
TEAMNAME: EAZY, ID: 154
TEAMNAME: SUPER, ID: 124
程序必须能够在此布局中书写并读取此布局。
提前感谢您的帮助! :)
答案 0 :(得分:0)
您想要的是简单的.ini文件或正确的数据库文件。
.ini文件可能如下所示:
[Team1]
name=x
foo=1
bar=2
[Team2]
...
.ini文件可以使用configparser模块在Python中读取:
>>> import configparser
>>> config = configparser.ConfigParser()
>>> config.sections()
[]
>>> config.read('example.ini')
['example.ini']
>>> config.sections()
['bitbucket.org', 'topsecret.server.com']
>>> 'bitbucket.org' in config
True
>>> 'bytebong.com' in config
False
>>> config['bitbucket.org']['User']
'hg'
>>> config['DEFAULT']['Compression']
'yes'
>>> topsecret = config['topsecret.server.com']
>>> topsecret['ForwardX11']
'no'
>>> topsecret['Port']
'50022'
>>> for key in config['bitbucket.org']: print(key)
...
在此处阅读更多内容:https://docs.python.org/3/library/configparser.html
有关数据库文件以及如何在Python中使用它们的更多信息:https://docs.python.org/3/library/sqlite3.html
答案 1 :(得分:0)
要读入已发布的布局,可以逐行读取文件,然后用逗号分隔每一行。然后可以将此信息存储在字典中。
def readfile():
datalist = [] #create a list to store the dictionaries in
file = open('database.txt', 'r')
lines = file.read().split('\n') #this creates a list containing each line
for entry in lines: #scan over all of the lines
parts = entry.split(',') #split it at the comma
dictionary = dict()
for part in parts:
dictionary[part.split(':')[0].strip()] = part.split(':')[1].strip()
datalist.append(dictionary)
file.close()
return datalist
datalist
是包含字典的列表,其中包含信息。它可以像这样使用:
for item in datalist:
print('Team Name:', item['TEAMNAME'])
print('Id:', item['ID'])
要回写文件,您可以使用:
def writefile(datalist):
file = open('database.txt', 'w')
for entry in datalist:
output = ''
for key in entry.keys():
output += key
output += ': '
output += entry[key]
output += ', '
file.write(output[:-2] + '\n') #get rid of the trailing comma
file.close()
您可以在列表中添加新条目,如下所示:
data = readfile() #get the data
data.append({'TEAMNAME': 'COOL', 'ID': '444'})
writefile(data) #update the file