在Flask框架之外编写CSV没有问题.但是当我尝试从Flask写入它时,它会写入CSV,但只能在一行上写入.
这是我正在关注的模板
@app.route('/download')
def download():
csv = """"REVIEW_DATE","AUTHOR","ISBN","DISCOUNTED_PRICE"
"1985/01/21","Douglas Adams",0345391802,5.95
"1990/01/12","Douglas Hofstadter",0465026567,9.95
"1998/07/15","Timothy ""The Parser"" Campbell",0968411304,18.99
"1999/12/03","Richard Friedman",0060630353,5.95
"2004/10/04","Randel Helms",0879755725,4.50"""
response = make_response(csv)
response.headers["Content-Disposition"] = "attachment; filename=books.csv"
return response
Run Code Online (Sandbox Code Playgroud)
这完全可以写入CSV,但是当我尝试使用我的代码时,我会得到一个长行.
我的代码:
@app.route('/download')
def post(self):
# lots of code
csvList.append([all,my,data,goes,here])
csvList = str(re.sub('\[|\]','',str(csvList))) # convert to a string; remove brackets
response = make_response(csvList)
response.headers['Content-Disposition'] = "attachment; filename=myCSV.csv"
return response
Run Code Online (Sandbox Code Playgroud)
我的输出:
Nashville Physician Service Ce,Treasury Specialist,Brentwood,TN,(615) 507-1646,La Petite Academy,Afternoon Teacher Aide,Goodlettsville,TN,(615) 859-2034,Nashville Physician Service Ce,Denial Resolution Specialist,Brentwood,TN,(615) 507-1646
Run Code Online (Sandbox Code Playgroud)
谢谢.
编辑:我尝试了所有的答案,他们在大多数情况下工作,但我选择了vectorfrog,因为它符合我想要完成的任务.
如果满足某些条件,如何组合列表的元素.
我见过关于组合列表元素的帖子,但没有一些条件.
假设我有一个包含单词列表的列表:
words = [
['this','that!','riff','raff'],
['hip','hop!','flip!','flop'],
['humpty','dumpty!','professor!','grumpy!']
]
Run Code Online (Sandbox Code Playgroud)
如何仅组合包含!?的元素?
例如,输出将如下所示:
[['this', 'that!', 'riff', 'raff'],
['hip', 'hop!, flip!', 'flop'], # 1,2 are now combined
['humpty', 'dumpty!, professor!, grumpy!']] # 1,2,3 are now combined
Run Code Online (Sandbox Code Playgroud)
我试过这个:
for word in words:
word = ', '.join(i for i in word if re.search('!',str(i)))
print word
Run Code Online (Sandbox Code Playgroud)
但得到了:
that!
hop!, flip!
dumpty!, professor!, grumpy!
Run Code Online (Sandbox Code Playgroud)
谢谢.
Jupyter == 4.1.0,Python == 2.7.10,IPython == 4.2.0
我正在为我的Jupyter笔记本编写一个SQL UI,并希望结合多线程,以便我可以在一个单元格中运行查询,并在查询运行时继续在其他单元格中工作.
我遇到的问题是,如果我在一个单元格中执行查询,输出将显示在最后执行的单元格的输出提示中,而不是在执行查询的单元格的输出提示中.
我仔细检查了网络,发现了这个聪明的伎俩,但我认为它已经过时了和/或在我的Jupyter版本中不再适用.当我运行它时,我只获得上次执行的任何单元格的输出.因此,如果我同时运行两者,我只获得最后执行的输出,而不是输出打印以同时分离单元格.
所以我有我的上下文管理器设置parent_header:
import sys
import threading
from contextlib import contextmanager
# we need a lock, so that other threads don't snatch control
# while we have set a temporary parent
stdout_lock = threading.Lock()
@contextmanager
def set_stdout_parent(parent):
"""a context manager for setting a particular parent for sys.stdout
the parent determines the destination cell of output
"""
save_parent = sys.stdout.parent_header
with stdout_lock:
sys.stdout.parent_header = parent
try:
yield
finally: …Run Code Online (Sandbox Code Playgroud) 我正在使用Flask构建一个Web应用程序并将其托管在Heroku上。我的应用程序会抓取网络-因此可能要花费几秒钟到20分钟的时间,具体取决于搜索条件。当我尝试运行更大的请求时,应用程序在默认的30秒后超时。有谁知道如何增加超时时间?我尝试从中更改配置文件:
web: gunicorn myapp:app --log-file=-
对此:
web: gunicorn myapp:app --timeout 1200
但无处可去。
但是当我将其更改为
web: gunicorn myapp:app --timeout 5
它在5秒后超时
我正在通过Vagrant在我的本地盒子上运行一个应用程序.Python/Flask应用程序启动并打印:
* Running on http://127.0.0.1:5000/
* Restarting with reloader
我找到了这个https://github.com/makersquare/student-dev-box/wiki/Using-Vagrant-for-Development#testing-web-based-applications-in-vagrant
,这表明Vagrant应用运行10.10.10.10(不是127.0.0.1) ,但是当我导航到该IP地址(端口5000)时,我得到相同的结果:"此网页不可用".
问题:我的应用程序正在运行,但是在什么IP地址上?我似乎找不到它.我需要修改一些配置文件吗?
提前致谢.
有没有办法在Python中将PDF(或文本文件)转换为Word文档?我正在为我的教授做一些网络抓取,原始文档是 PDF。我将所有 1,611 个文件转换为文本文件,现在我们需要将它们转换为 Word 文档。我唯一能找到的是 Word 到 txt 转换器,而不是相反。
谢谢!
python ×6
flask ×3
converters ×1
csv ×1
heroku ×1
ip ×1
ipython ×1
list ×1
ms-word ×1
pdf ×1
python-2.7 ×1
sys ×1
timeout ×1
vagrant ×1
vagrantfile ×1