在下面的代码中,我通过在for循环中追加来更新包含两个项目的列表。我需要在追加每个字符串后添加换行符,但我似乎无法做到。
我以为会是:
function saveTextAsFile()
{
var textToWrite = document.getElementById("json_polyline").value;
var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'});
var fileNameToSaveAs = "archivo.txt";
var downloadLink = document.createElement("a");
downloadLink.download = fileNameToSaveAs;
downloadLink.innerHTML = "My Hidden Link";
window.URL = window.URL || window.webkitURL;
downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
downloadLink.onclick = destroyClickedElement;
downloadLink.style.display = "none";
document.body.appendChild(downloadLink);
downloadLink.click();
}
function destroyClickedElement(event)
{
document.body.removeChild(event.target);
}
但这只会将'\ n'添加为字符串。我也尝试了相同的,没有引号,但没有运气。
我得到了这个:
lines = []
for i in range(10):
line = ser.readline()
if line:
lines.append(line + '\n') #'\n' newline
lines.append(datetime.now())
但我想要这个:
['leftRaw; 928090; 0; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00;\n', datetime.datetime(2016, 8, 25, 23, 48, 4, 517000), '\r\x00rightRaw; 928090; 0; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00;\n', datetime.datetime(2016, 8, 25, 23, 48, 4, 519000), '\r\x00leftRaw; 928091; 0; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00)]
有什么想法吗?
答案 0 :(得分:2)
我通过使用'strftime'方法在每个帧上将'datetime.now'附加到列表中来解决问题。然后,我可以使用'lines ='\ n'.join(lines)'添加换行符。请参阅下面的代码了解工作代码。
lines = []
for frame in range(frames):
line = ser.readline()
if line:
lines.append(line)
lines.append(datetime.now().strftime('%H:%M:%S'))
lines = '\n'.join(lines)
dataFile.write('%s'%(lines))
这为我提供了新行上每个列表项的所需输出,例如
['leftRaw; 928090; 0; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00;\n',
datetime.datetime(2016, 8, 25, 23, 48, 4, 517000),
'\r\x00rightRaw; 928090; 0; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00;\n',
datetime.datetime(2016, 8, 25, 23, 48, 4, 519000)']
答案 1 :(得分:1)
您可以将所有项目添加到列表中,然后使用.join()函数在列表中的每个项目之间添加新行:
for i in range(10):
line = ser.readline()
if line:
lines.append(line)
lines.append(datetime.now())
final_string = '\n'.join(lines)
答案 2 :(得分:0)
lines
列表看起来很简单。您看到的\n
仅打印为指示实际上有新行。看到这个较小的例子:
In [18]: print ['asdf' + '\n\n'] + [datetime.now()],
['asdf\n\n', datetime.datetime(2016, 8, 25, 15, 32, 5, 955895)]
In [19]: a = ['asdf' + '\n\n', datetime.now()]
In [20]: print a[0]
asdf
In [21]: print a
['asdf\n\n', datetime.datetime(2016, 8, 25, 15, 37, 14, 330440)]
In [22]: