我有这个函数引用文件的路径:
some_obj.file_name(FILE_PATH)
Run Code Online (Sandbox Code Playgroud)
其中FILE_PATH是文件路径的字符串,即 H:/path/FILE_NAME.ext
我想在我的python脚本中创建一个文件FILE_NAME.ext,其中包含字符串的内容:
some_string = 'this is some content'
Run Code Online (Sandbox Code Playgroud)
怎么去这个?Python脚本将放在Linux框中.
我有一些带遗留函数的遗留代码,它将文件名作为参数并处理文件内容.下面是代码的工作传真.
我想要做的是不必使用我生成的一些内容写入磁盘以使用此遗留函数,因此我可以使用StringIO创建对象来代替物理文件名.但是,这不起作用,如下所示.
我认为StringIO是这样的方式.任何人都可以告诉我是否有一种方法可以使用这个遗留函数并在参数中传递一些东西,而不是磁盘上的文件但可以通过遗留函数对待它?遗留函数确实让with上下文管理器对filename参数值进行处理.
我在谷歌遇到的一件事是:http://bugs.python.org/issue1286,但这对我没有帮助......
码
from pprint import pprint
import StringIO
# Legacy Function
def processFile(filename):
with open(filename, 'r') as fh:
return fh.readlines()
# This works
print 'This is the output of FileOnDisk.txt'
pprint(processFile('c:/temp/FileOnDisk.txt'))
print
# This fails
plink_data = StringIO.StringIO('StringIO data.')
print 'This is the error.'
pprint(processFile(plink_data))
Run Code Online (Sandbox Code Playgroud)
产量
这是输出FileOnDisk.txt:
['This file is on disk.\n']
Run Code Online (Sandbox Code Playgroud)
这是错误:
Traceback (most recent call last):
File "C:\temp\test.py", line 20, in …Run Code Online (Sandbox Code Playgroud) 有没有办法读取 .wav 格式的二进制数据帧?我正在将 .wav 二进制文件流式传输到 python 服务器,我希望能够从 pyaudio 的处理中读取和使用,这会抱怨帧大小。
由于我不能使用wave.open('filename.wav'),因为我已经有了正在流式传输的二进制数据,有没有办法读取二进制数据,以便我可以使用python 库中的readframes方法wave?
编辑:我尝试readframes从客户端流式传输,但是 pyaudio 给出了字节不是 .wav 格式的错误。但是,如果我可以在服务器上完成此操作,那将是理想的。
我有一个与 Django GIS 相关的应用程序,用户可以在其中下载 shp 文件。我有 geopandas GeoDataFrame 对象。我可以轻松地将其转换为 zip 文件,然后在用户想要下载时将其读取给用户:
from django.http import HttpResponse
import geopandas as gpd
import shapely
import os
from zipfile import ZipFile
def download_shp_zip(request):
# just some random polygon
geometry = shapely.geometry.MultiPolygon([
shapely.geometry.Polygon([ (0, 0), (0, 1), (1, 1), (1, 0) ]),
shapely.geometry.Polygon([ (2, 2), (2, 3), (3, 3), (3, 2) ]),
])
# create GeoDataFrame
gdf = gpd.GeoDataFrame(data={'geometry':geometry}, crs='epsg:4326')
# some basename to save under
basename = 'basename'
# create folder for this session …Run Code Online (Sandbox Code Playgroud)