读取整个文件并将其存储在列表中而不丢失内容拆分i

2024-09-29 23:29:40 发布

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

我想在python中读取一个文件,并希望在不丢失任何数据的情况下将其保存在一个列表中

loadingFile = open('lorem.txt','r')
Data = loadingFile.read()

#print(Data)

data = Data.split("#*")
print(data)

数据集的输入:

#*OQL[C++]: Extending C++ with an Object Query Capability.

#@José A. Blakeley

#t1995

#cModern Database Systems

#index0

#*Transaction Management in Multidatabase Systems.

#@Yuri Breitbart,Hector Garcia-Molina,Abraham Silberschatz

#t1995

#cModern Database Systems

#index1

所需输出:

List = ['#*OQL[C++]: Extending C++ with an Object Query Capability. #@José A.Blakeley #t1995#cModern Database Systems #index0','#*Transaction Management in Multidatabase Systems. #@Yuri Breitbart,Hector Garcia-Molina,Abraham Silberschatz #t1995 #cModern Database Systems #index1']

Tags: 数据andataobjectwithquerydatabaseprint
3条回答

使用re模块的一种可能的解决方案:

data = '''#*OQL[C++]: Extending C++ with an Object Query Capability.

#@José A. Blakeley

#t1995

#cModern Database Systems

#index0

#*Transaction Management in Multidatabase Systems.

#@Yuri Breitbart,Hector Garcia-Molina,Abraham Silberschatz

#t1995

#cModern Database Systems

#index1'''

import re

lst = re.findall(r'(#\*.*?)\s*(?=#\*|\Z)', re.sub(r'\n+', ' ', data), flags=re.DOTALL)

# pprint is used here only for pretty printing, all the data are in list `lst`
from pprint import pprint
pprint(lst, width=180)

印刷品:

['#*OQL[C++]: Extending C++ with an Object Query Capability. #@José A. Blakeley #t1995 #cModern Database Systems #index0',
 '#*Transaction Management in Multidatabase Systems. #@Yuri Breitbart,Hector Garcia-Molina,Abraham Silberschatz #t1995 #cModern Database Systems #index1']

这个怎么样:

d = "#*"
output = []
for line in Data:
    output.append([d+e for e in line.split(d) if e])
print(output)

怎么样:

data = ['#*OQL[C++]: Extending C++ with an Object Query Capability. #@José A.Blakeley #t1995#cModern Database Systems #index0 #*Transaction Management in Multidatabase Systems. #@Yuri Breitbart,Hector Garcia-Molina,Abraham Silberschatz #t1995 #cModern Database Systems #index1']


lst = ['#*' + segment for segment in data[0].split(sep='#*')]
print(lst)

相关问题 更多 >

    热门问题