我只是试图添加新的推文进入新的一行 在一个文件....到目前为止我没有尝试在OS X Python上工作。
class CustomStreamListener(tweepy.StreamListener):
def on_status(self, status):
print status.text
with open("myNewFile", "a") as file:
file.write('\n')
file.write("\n" + status.text + "\n")
file.write('\n')
有什么想法吗?
答案 0 :(得分:4)
您有缩进问题:
with open("myNewFile", "a") as file:
file.write('\n')
file.write("\n" + status.text + "\n")
file.write('\n')
如果你想进入with
上下文,你应该在右边缩进以下三行。
此外,您可以使用format()
准备要编写的字符串,以提高效率和可读性:
import os
with open("myNewFile", "a") as file:
file.write('{0}{0} {1} {0}{0}'.format(os.linesep, status.text)
#file.write('\n')
#file.write("\n" + status.text + "\n")
#file.write('\n')
请注意os.linesep
插入独立于操作系统的新行:)。
您还可以通过重复两次linesep
来编写两个file.write('{0} {1} {0}'.format(os.linesep * 2, status.text)
:(将字符串乘以2):
{{1}}
哪个更干净。
答案 1 :(得分:2)
您的with
标记中的缩进错误
class CustomStreamListener(tweepy.StreamListener):
def on_status(self, status):
print status.text
with open("myNewFile", "a") as file:
file.write('\n') #move this over 1 indentation
file.write("\n" + status.text + "\n") #move this over 1 indentation
file.write('\n') #move this over 1 indentation
同时尝试'\r\n'
而不仅仅是'\n'
,因为UNIX处理换行符的方式与Windows不同。
另一种选择是使用universal newline support这样的
打开文件 with open("myNewFile", "u") as file:
请注意,“u”模式在3.x中已弃用,因为它是默认值
编辑2 您的换行符似乎显示在输出中。见 this related question
答案 2 :(得分:1)
您可以使用以下语法:
print >>file, status.text
这与普通的print
函数相同,除了它输出到文件(所以它会在最后添加换行符,就像普通的print
)
答案 3 :(得分:1)
这可能有效:
entry = '\n' + status.text
f = open('myNewFile', 'a')
f.write(entry)
f.close()