是否可以写入没有引号和空格的文件字符串(列表中任何类型的空格)?
例如我有这样的清单:
['blabla', 10, 'something']
如何写入文件,以便文件中的行变为:
blabla,10,something
现在,每当我将其写入文件时,我都会得到:
'blabla', 10, 'something'
然后我需要用空符号替换'
和' '
。也许有一些技巧,所以我不需要一直更换它?
答案 0 :(得分:8)
这将有效:
lst = ['blabla', 10, 'something']
# Open the file with a context manager
with open("/path/to/file", "a+") as myfile:
# Convert all of the items in lst to strings (for str.join)
lst = map(str, lst)
# Join the items together with commas
line = ",".join(lst)
# Write to the file
myfile.write(line)
文件输出:
blabla,10,something
但请注意,上述代码可以简化:
lst = ['blabla', 10, 'something']
with open("/path/to/file", "a+") as myfile:
myfile.write(",".join(map(str, lst)))
此外,您可能希望在写入文件的行末尾添加换行符:
myfile.write(",".join(map(str, lst))+"\n")
这将导致对文件的每个后续写入都放在它自己的行上。
答案 1 :(得分:1)
你有没有尝试过类似的东西?
yourlist = ['blabla', 10, 'something']
open('yourfile', 'a+').write(', '.join([str(i) for i in yourlist]) + '\n')
其中
', '.join(...)
获取字符串列表并用字符串粘贴(', '
)
和
[str(i) for i in yourList]
将您的列表转换为字符串列表(以便处理数字)
答案 2 :(得分:1)
初始化空字符串j
对于列表中的所有项,连接到j,在for循环中不创建空格,
print str(j)将删除引号
j=''
for item in list:
j = j + str(item)
print str(j)