使用Python

时间:2017-11-18 15:23:05

标签: python file-io

我想使用Python在我的.txt文件中添加一个逗号。

with open('filename.txt', 'r') as f:
    fileText = f.read()

filedata = fileText.split('\n')

上面的代码会读取文件并用换行符拆分。

文本文件是这样的:

ABC  name1, name2, name3

XYZ  nameA, [nameBa nameBb], nameC

我需要在第一个字符串后添加一个逗号。该文件包含4或5个字符串;除第一个之外,大多数都用逗号分隔。

我已经使用了两个for循环来解决这个问题,但我认为如果我可以使用Python写入我的文本文件并仅插入逗号然后我只需要使用一个循环获取所有字符串。

预期结果:

ABC, name1, name2, name3

XYZ, nameA, [nameBa nameBb], nameC

我正在使用list结构,但dict可能更好,因为我可以将第一个字符串用作键(ABCXYZ)并将其余值存储在任一值中或者作为由所有其他字符串组成的列表。

任何人都可以帮我将逗号插入我在特定位置的文本文件中(即每行左起第四个字符)?

4 个答案:

答案 0 :(得分:0)

你可以像这样构建一个dict

d = {}
with open('filename.txt', 'r') as f:
    for line in f:
        k, v = line.split(' ', 1)
        d[k.strip()] = [s.strip() for s in v.split(',')]

答案 1 :(得分:0)

with open(file, 'r+') as file

+r将附加到该行。看看这个问题基本相同:Python insert characters into txt file without overwrite

答案 2 :(得分:0)

正如你所说,你的主要目标是:

  

我可以使用第一个字符串作为键(ABC,XYZ)并将其余存储在其中   值或作为由所有其他字符串组成的列表。

你可以在这里使用正则表达式,你可以在不添加逗号的情况下获得结果:

import re
pattern=r'(^\w+)\s.(\w.+)'
final_dict={}
with open('file.txt','r') as f:
    for line in f:
        match=re.finditer(pattern,line)

        for find in match:
            final_dict[find.group(1)]=[find.group(2)]

print(final_dict)

输出:

{'XYZ': ['nameA, [nameBa nameBb], nameC'], 'ABC': ['name1, name2, name3']}

答案 3 :(得分:0)

使用 f 字符串方法:

f.write(f", {data}")