gpt4 book ai didi

python - 逐行读取文件,拆分其内容,跳过空行

转载 作者:行者123 更新时间:2023-11-28 22:20:40 25 4
gpt4 key购买 nike

我有这样一个文件:

a;a_desc
b;b_desc

c;
d
;
e;e_desc

我想要的是:

  • 逐行阅读
  • 删除换行符
  • 跳过空行
  • 如果分号前有字符串,分号后没有,则两次使用分号前的字符串
  • 如果有一个字符串但没有分号,则使用该字符串两次
  • 返回一个列表

这就是我想要得到的:

[['a', 'a_desc'], ['b', 'b_desc'], ['c', 'c'], ['d', 'd'], ['e', 'e_desc']]

我已经得到的:

filename = 'data.txt'

with open(filename, 'r') as f:

x = [line.rstrip('\n') for line in f.readlines() if not line.isspace()]

xx = [line.split(';') for line in x]

content = [line for line in xx if line[0]]

print(content)

这会给我:

[['a', 'a_desc'], ['b', 'b_desc'], ['c', ''], ['d'], ['e', 'e_desc']]

我可能会创建更多循环,以正确捕捉 cd 行。
但是有没有更短的方法来代替所有的循环呢?

谢谢!

最佳答案

您可以只执行一个循环并在每个步骤中检查值,如果列表只有一个元素,则将列表加倍。

with open(filename, 'r') as f:
data = []
for line in f.readlines():
line = line.rstrip('\n')
if not line:
continue
line_list = [s for s in line.split(';') if s]
if not line_list:
continue
if len(line_list) == 1:
line_list *= 2
data.append(line_list)

关于python - 逐行读取文件,拆分其内容,跳过空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48773799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com