我正在尝试保存FileInfo和DirectoryInfo对象的数组以用作日志文件.目标是在某个时间点捕获目录(和子目录)的映像,以便以后进行比较.我目前正在使用此类来存储信息:
public class myFSInfo
{
public FileSystemInfo Dir;
public string RelativePath;
public string BaseDirectory;
public myFSInfo(FileSystemInfo dir, string basedir)
{
Dir = dir;
BaseDirectory = basedir;
RelativePath = Dir.FullName.Substring(basedir.Length + (basedir.Last() == '\\' ? 1 : 2));
}
private myFSInfo() { }
/// <summary>
/// Copies a FileInfo or DirectoryInfo object to the specified path, creating folders and overwriting if necessary.
/// </summary>
/// <param name="path"></param>
public void CopyTo(string path)
{
if (Dir is FileInfo)
{
var f = (FileInfo)Dir; …Run Code Online (Sandbox Code Playgroud) 我正在尝试像在 Excel 中一样在 python 中定义我自己的 IFERROR 函数。(是的,我知道我可以编写 try/ except 。我只是想为我经常使用的 try/ except 模式创建一个内联简写。)当前的用例是尝试获取一些远程表的几个属性。用于连接到它们的模块会给出各种错误,如果发生这种情况,我只想记录在尝试获取该属性时遇到的错误。
我尝试过的:搜索显示了许多线程,其中最有用的是:
阅读这些主题后,我尝试编写以下内容:
>>> def iferror(success, failure, *exceptions):
... try:
... return success
... except exceptions or Exception:
... return failure
...
>>> iferror(1/0,0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
Run Code Online (Sandbox Code Playgroud)
我还尝试使用上下文管理器(对我来说是新的):
>>> from contextlib import contextmanager as cm
>>> @cm
... def iferror(failure, *exceptions):
... try:
... yield
... except exceptions or …Run Code Online (Sandbox Code Playgroud) 我在使用 pandas-datareader 从 Quandl 导入数据时遇到问题。这是我尝试过的代码(使用真正的 API 密钥):
import pandas_datareader.data as pdr
from datetime import date
start=date(1970,1,1)
end=date.today()
ticker='F'
qkey=[My API Key]
pdr.QUANDL_API_KEY=qkey
QUANDL_API_KEY=qkey
pdrquandl=pdr.DataReader('WIKI/'+ticker,'quandl',start,end)
pdrquandl=pdr.DataReader('WIKI/'+ticker,'quandl',start,end,api_key=qkey)
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我收到以下错误消息:
>>> pdrquandl=pdr.DataReader('WIKI/'+ticker,'quandl',start,end)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python37\lib\site-packages\pandas_datareader\data.py", line 379, in DataReader
session=session, api_key=access_key).read()
File "C:\Python37\lib\site-packages\pandas_datareader\quandl.py", line 54, in __init__
raise ValueError('The Quandl API key must be provided either '
ValueError: The Quandl API key must be provided either through the api_key variable or through the environmental …Run Code Online (Sandbox Code Playgroud) 我有一个数组列表,其中每个数组都是一个列表列表。我想把它变成一个包含所有列的数组。我已经尝试使用 for 循环来完成这项工作,但感觉它在列表理解中应该是可行的。有没有一个很好的单线可以做到这一点?
Example Input: [[[1,2],[3,4],[5,6]],[[7,8],[9,10],[11,12]]]
Desired Output: [[1,2,7,8],[3,4,9,10],[5,6,11,12]]
Run Code Online (Sandbox Code Playgroud)
注意:示例在主列表中只有两个数组,但我的实际数据有更多,所以我正在寻找适用于 N 个子数组的东西。
编辑:尝试解决此问题的示例
适用于两个人,但不能概括:
[input[0][i]+input[1][i] for i in range(len(input[0]))]
Run Code Online (Sandbox Code Playgroud)
这些不起作用,但表明了这个想法:
[[element for table in input for element in row] for row in table]
[[*imput[j][i] for j in range(len(input))] for i in range(len(input[0]))]
Run Code Online (Sandbox Code Playgroud)
编辑:选择的答案仅使用列表理解和 zip,但所有答案(截至目前)都有效,因此请使用最适合您的风格/用例的答案。