我想使用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
可能更好,因为我可以将第一个字符串用作键(ABC
,XYZ
)并将其余值存储在任一值中或者作为由所有其他字符串组成的列表。
任何人都可以帮我将逗号插入我在特定位置的文本文件中(即每行左起第四个字符)?
答案 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}")