pd.read_csv() 可能抛出哪些异常?
在下面的示例中,我显式捕获一些异常类型并使用通用异常来捕获其他异常类型,但其他异常类型到底是什么?
查看pandas read_csv() 的文档我看不到抛出的异常的完整列表。
在更一般的情况下,确定任何调用/库可能引发的所有异常类型的建议做法是什么?
import pandas as pd
try:
df = pd.read_csv("myfile.csv")
except FileNotFoundError:
print("File not found.")
except pd.errors.EmptyDataError:
print("No data")
except pd.errors.ParserError:
print("Parse error")
except Exception:
print("Some other exception")
Run Code Online (Sandbox Code Playgroud) 我有一些.Net WCF服务,对于这些服务,我已经配置了app.config文件来记录在.svclog文件中发送和接收的消息,该文件可由"服务跟踪查看器工具"(SvcTraceViewer.exe)读取.此工具使日志文件清晰地显示正在处理的SOAP消息.
我必须使用System.Diagnostics.XmlWriterTraceListener侦听器来正确格式化.svclog文件,以便可由Service Trace Viewer Tool处理.
我遇到的问题是.svclog文件变得太大而服务跟踪查看器工具由于响应时间慢而变得无法使用.
服务跟踪查看器工具确实提供了一种工具,如果文件大小> 40MB,则允许打开部分日志文件,但这仍然太慢.app.config文件中似乎没有任何工具可以将.svclog配置为每天或当文件达到特定大小时自动创建新文件.
有一个名为Microsoft.VisualBasic.Logging.FileLogTraceListener的文本日志侦听器,它支持logfilecreationschedule ="Daily"属性,该属性每天滚动日志文件,但是此侦听器生成的日志文件很难被操作支持人员用作日志条目没有很好地呈现,大型xml文档导致混淆.
这个领域的最佳实践是什么,看起来我可能不得不编写一个自定义的WCF日志扩展,这似乎只是为了解决内置的System.Diagnostics.XmlWriterTraceListener日志监听器中缺少日志文件滚动功能的问题.附加目的地.
我还尝试了一个脚本来停止我的应用程序并重命名日志文件,但这似乎不可能,因为在Windows上,handle.exe和openfile实用程序无法关闭通过网络共享打开的文件,因此我无法重命名/如果有人通过网络共享浏览旧日志文件,则移动旧日志文件.不久将发布一个单独的问题.
谢谢,马特.
我在sublime text 3中使用插件或技术来获取我将在编辑器窗口中选择的json元素的完全限定路径.
有些想法:http://jsonpath.com/
我想在某个地方得到一个我可以复制的结果,我只是想将它用于文档,而不是以编程方式.它不需要是https://github.com/jayway/JsonPath标准,只需要生成一个可读/有意义的元素路径.
json jsonpath sublimetext3 sublime-text-plugin visual-studio-code
我目前使用此命令创建一个新的 anaconda 环境:
conda create --name=<myEnvNameHere> python=3.9.5
Run Code Online (Sandbox Code Playgroud)
我使用以下命令确定 3.9.5 是 anaconda 中可用的最新版本的 python:
conda search -f python
Run Code Online (Sandbox Code Playgroud)
如何仅使用一个命令来使用最新可用版本的 python 创建一个新环境,可能类似于:
conda create --name=<myEnvNameHere> python=latest
Run Code Online (Sandbox Code Playgroud)
我知道我可以编写一个脚本来实现我想要的结果,但是有没有办法在conda create命令中本地实现它?
我正在使用 AWS 的MWAA 服务(2.2.2) 来运行各种 DAG,其中大多数是使用标准 PythonOperator 类型实现的。我将 DAG 与任何共享需求一起捆绑到 S3 存储桶中,然后将 MWAA 指向相关对象和版本。到目前为止一切都进展顺利。
我现在想使用PythonVirtualenvOperator类型实现 DAG,AWS 承认不支持开箱即用。我正在遵循他们关于如何使用自定义插件修补行为的指南,但仍然收到来自 Airflow 的错误,该错误以大红色字体显示在仪表板顶部:
DAG 导入错误(1)…… AirflowException:PythonVirtualenvOperator 需要 virtualenv,请安装它。
我已经确认 Airflow 确实使用了该插件(我在管理屏幕中看到了它),为了避免产生疑问,我使用了 AWS 在 DAG 示例中提供的确切代码。AWS 的相关文档非常简单,我还没有偶然发现任何社区讨论。
根据 AWS 的文档,我们希望该插件在启动时在处理任何 DAG 之前运行。该插件本身似乎有效地重写了 venv 命令以使用 pip 安装的版本,而不是安装在计算机上的版本,但是我一直在努力验证事情是否按照我期望的顺序发生。任何有关调试实例行为的指示都将非常感激。
有人遇到过类似的问题吗?MWAA 文档中是否存在需要解决的空白?我错过了一些非常明显的事情吗?
可能相关,但我确实在调度程序日志中看到此警告,这可能表明为什么 MWAA 正在努力解决依赖性?
警告:脚本 virtualenv 安装在 '/usr/local/airflow/.local/bin' 中,该路径不在 PATH 上。
首先,对于长期问题感到抱歉,但我想提供足够的细节.
在Windows中似乎不可能强制关闭通过网络共享打开的文件句柄.因此,无法移动/重命名/删除通过网络共享打开的文件.我正在使用Win 7.
任何人都可以看到我做错了或者有人确认这是预期的,并且不可能强制关闭系统文件句柄(总是在pid 4上,例如与网络共享访问文件相关的那些).
我们有访问日志文件的远程网络客户端用户.我们需要滚动日志文件,使其不会变得太大.我们无法滚动日志文件,因为文件报告为正在使用中.
以管理员身份做一切
创建一个新目录并分享
在新目录中创建一个文件
通过文件共享编辑文件,其中包含一些像MS Word一样的文件锁定文件.所以,开始/运行然后键入\ YourHostName然后选择您创建的文件共享,然后导航到该文件并使用Word进行编辑.这是为了模拟锁定文件的远程用户/主机.
列出打开的文件句柄,我们可以在下面看到2
C:>处理C:\ Log\MyLockedFile.txt
句柄v3.46版权所有(C)1997-2011 Mark Russinovich Sysinternals - www.sysinternals.com
System pid:4 type:File 3E64:C:\ Log\MyLockedFile.txt System pid:4 type:File 5E48:C:\ Log\MyLockedFile.txt
尝试关闭文件句柄,在这里我们看到尝试关闭失败.
C:>处理-c 3E64 -p 4
句柄v3.46版权所有(C)1997-2011 Mark Russinovich Sysinternals - www.sysinternals.com
3E64:文件(R--)C:\ Log\MyLockedFile.txt关闭系统中的句柄3E64(PID 4)?(y/n)y关闭句柄时出错:句柄无效.
列出网络文件句柄,这里我们看到打开的网络共享到文件.
C:> openfiles/query -v
信息:需要启用系统全局标志"维护对象列表"才能查看本地打开的文件.见Openfiles /?欲获得更多信息.
通过本地共享点远程打开的文件:
按类型访问的主机名ID #Locks打开模式打开文件(路径\可执行文件)14693W7N 67109233 myuser1 Windows 0写入+读取C:\ Log\MyLockedFile.txt 14693W7N 495 myuser1 Windows 0读取C:\ Log \
关闭/断开文件的文件句柄,这里似乎工作
C:> …
我试图通过 Swagger UI 为公司内部使用记录在供应商产品 (WSO2 ESB) 中开发的现有 API 服务。供应商产品不支持 swagger。我计划以编程方式检查/处理我的 API 服务的源代码(在供应商产品中编写),并生成 .json 或 .yml 格式的 swagger 定义文件的目录/文件夹/库。那很好,我可以做到。
这些 api 定义文件中的每一个都将在 swagger UI 中很好地呈现,我正在考虑使用https://www.npmjs.com/package/swagger-ui。
我的问题是我最终会得到大约 100 个这些 API 定义文件,我想提供一些总体界面/页面,其中列出所有 API,然后将用户带到 Swagger UI,并在用户单击时加载特定的 API 定义在其中一个链接上。这相当于打开我的本地 swagger-ui 并在相关 API 定义的路径中手动键入/复制。如果我手动执行此操作,则效果很好,我只是不希望用户必须手动执行此操作。他们如何知道存在哪些 API 定义 url 以及为什么让他们手动输入/复制它们。
我看不到如何将“apiDefintionToLoad”参数传递到 Swagger-ui 中,我想我会找到一个或更改源以支持该参数。这存在吗?
有没有更好的解决方案,要么自己开发,要么使用现有的包或解决方案?我更喜欢基于节点的解决方案,java 也可以。
我这样做错了吗?
谢谢,马特。
我希望我的 node.js 项目生成有点类似于 log4j 格式的日志文件,因为我希望每个日志行都以文件名和日志请求源自的 js 函数名开头。
例如:如果我的 js 文件被称为 aNiceFile.js 并且我的 js 函数被称为 doImportantStuff() 并且我调用了一个日志语句,例如:
log.info('About to start on the important stuff')
Run Code Online (Sandbox Code Playgroud)
我希望我的日志文件看起来有点像:
2018-03-14 06:33:26:619 INFO aNiceFile.js doImportantStuff() About to start on the important stuff.
Run Code Online (Sandbox Code Playgroud)
我想做大量的日志记录,所以我不介意一次性的,前期的努力来设置它,但我对每个文件/功能添加到我的代码中的额外工作最少。
我今天正在使用Winston,如果有必要,我很高兴切换到其他东西,对于 Winston,如果没有我的努力,这似乎是不可能的:https : //github.com/winstonjs/winston/issues/200
为了完整起见,我不需要行号,但如果有它们也会很好。
我目前笨拙的解决方法是:
1)用这个启动每个文件以获取当前文件名:
const sn = path.basename(__filename) // this script file name, used for logging purposes
Run Code Online (Sandbox Code Playgroud)
我对这一步没问题,它并不繁琐,在每个文件的顶部粘贴了一行相同的行,我可以接受。
2)用这个启动每个函数以获取当前函数名称:
const fn = '<I copy/paste the function name into this string constant :( >' …Run Code Online (Sandbox Code Playgroud) 在我的 gradle 版本中,我有 2 个这样的测试任务:
task testAAA(type: Test) {
filter {
includeTestsMatching "*AAA*"
}
finalizedBy jacocoTestReport
}
Run Code Online (Sandbox Code Playgroud)
和
task testBBB(type: Test) {
filter {
includeTestsMatching "*BBB*"
}
finalizedBy jacocoTestReport
}
Run Code Online (Sandbox Code Playgroud)
这会在 build/jacoco 中生成 2 个 .exec 文件:
测试AAA.exec
testBBB.exec
我想生成一个单一的覆盖率报告,它从两个/所有 .exec 文件中获取输入,我试过这个:
jacocoTestReport {
executionData fileTree(project.rootDir.absolutePath).include("**/build/jacoco/*.exec")
reports {
xml.enabled true
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试时,我收到此错误:
Execution failed for task ':Project1:jacocoTestReport'.
> Unable to read execution data file Project1/build/jacoco/test.exec
Project1/build/jacoco/test.exec (No such file or directory)
Run Code Online (Sandbox Code Playgroud)
当我明确提供 executionData 规范时,为什么 jacocoTestReport 寻找“test.exec”?
python ×3
logging ×2
node.js ×2
.net ×1
airflow ×1
anaconda ×1
conda ×1
dataframe ×1
gradle ×1
jacoco ×1
java ×1
javascript ×1
json ×1
jsonpath ×1
mwaa ×1
pandas ×1
postman ×1
sublimetext3 ×1
swagger ×1
swagger-2.0 ×1
swagger-ui ×1
virtualenv ×1
wcf ×1
windows ×1
winston ×1