以下是我的 Windows WSL 环境的细分:
我有一个超级简单的 Python 程序,用于在默认浏览器中打开网页。
这是我的代码:
import webbrowser
webbrowser.open('https://github.com')
Run Code Online (Sandbox Code Playgroud)
当我从终端运行此命令时,网页会按预期打开,但我也在终端中收到此错误:
tcgetpgrp failed: Not a tty
当我的终端显示此消息时,光标会向下移动到下一行,看起来好像进程已挂起或发生其他情况。为了能够使用终端,我必须Ctrl+C才能让它给我命令提示符。
我寻找答案,我能找到的所有内容都与使用 Jupyter 或 PHP 有关,但我没有使用它们中的任何一个,我只是使用普通的旧 Python 来尝试打开浏览器。
谁能告诉我这里的问题是什么以及如何解决这个问题/防止它发生?
我想将目录中创建的所有文件的文件信息插入数据库。如果我在目录中删除少量文件,我的程序将执行此操作,但如果我一次在目录中删除大量文件,则它不会获取所有文件(我没有进行大量测试,但它只插入了大约当我尝试一次将 800 个文件放入目录时,我的数据库中包含了 200 个名称)。
这是我的代码:
static void Main(string[] args)
{
// Create a new FileSystemWatcher and set its properties.
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = @"C:\dropDirectory";
// Add event handlers.
watcher.Created += new FileSystemEventHandler(OnChanged);
// Begin watching.
watcher.EnableRaisingEvents = true;
while(DateTime.Now.Hour < 10);
}
private static void OnChanged(object source, FileSystemEventArgs e)
{
string strInsert = "INSERT INTO Files (Filename) VALUES ('" + e.Name + "')";
string strConnection = "Server = server_name; Database = database_name; User Id = user_id; …Run Code Online (Sandbox Code Playgroud) 我使用的是 Visual Studio Code 1.51.1 版,想知道在查看文件时是否有任何方法可以显示所有的 ascii 不可打印字符。我曾经使用 Notepad++,它有一个可以打开的功能,可以显示文件中的每个字符,包括不可打印的字符。
例如,这是在 Notepad++ 中打开的文件的屏幕截图,我BEL通过按插入了不可打印的字符ALT + 007。您还可以在行尾看到回车/换行符:
这是我所指的字符列表(我在这里找到了这个列表):
所以我要问的是有一个扩展我可以安装到 Visual Studio Code 或我可以配置的设置将显示所有 ascii 字符,包括可打印和不可打印,类似于 Notepad++ 如何做到这一点,如截图所示我假如?提前致谢。
ascii non-printing-characters visual-studio-code vscode-settings
我在本地安装了MySQL,运行时SELECT VERSION()返回此值:5.6.43-84.3
当我运行查询时,它只返回1行时返回多行。让我对其进行设置,以这种方式更容易解释。
CREATE TABLE test_table
(
test_val VARCHAR(255)
)
;
INSERT INTO test_table (test_val)
VALUES
('9671986020630615'),
('9671986020630616'),
('9671986020630617')
;
运行以下查询(此查询返回预期的1行):
SELECT *
FROMtest_table
WHEREtest_val= '9671986020630615'
;
运行此查询(此查询返回3行,不应返回):
SELECT *
FROMtest_table
WHEREtest_val= 9671986020630615
;
这是我对这种情况的观察:
WHERE用单引号将子句中的值引起来。WHERE子句中的值周围包含单个tic。VARCHAR(255)WHERE子句中的字符串与测试表(VARCHAR(255))中的字符串值进行比较WHERE第二个查询子句中的数值与测试表(VARCHAR(255))中的字符串值进行比较时,发生了某种情况,这导致MySQL返回3行而不是仅返回1行。第一个查询返回正确的结果是有意义的,因为它正在将字符串与字符串进行比较。
从某种意义上说,第二个查询正在返回错误的数据集(3行,而不是应该返回的1行)。
但是我的问题是为什么 MySQL会这样做?为什么当将一个数字与3个不同的VARCHAR(255)值进行比较时,如果WHERE子句中数值的真实值仅匹配1行,它会返回所有3行?
因此,实质上,对于第一个查询,MySQL就是这样说的:
'9671986020630615'='9671986020630615',
'9671986020630615'<>'9671986020630616',
'9671986020630615'<>'9671986020630617'
但是对于第二个查询,它说:
9671986020630615 ='9671986020630615', …
这是一个奇怪的情况,我看过很多这样的问题,但没有什么比这更好的了。希望我能得到一些关于它的反馈
我正在现有应用程序中创建一个新网页,并尝试执行一个简单的PUTapi 调用,由于某种原因,它在 chrome 开发工具中的网络选项卡上显示状态cancelled。我正在访问的服务器是我本地计算机上的虚拟机。我可以从应用程序中的不同现有页面访问相同的端点,并且它运行得很好,所以我知道端点没有任何问题。这是一些屏幕截图:
Chrome 开发工具中的网络选项卡如下所示:
这是当我点击“已取消”看跌期权时看到的内容:
这是 Chrome 开发工具的控制台选项卡上显示的内容:
需要注意的一件事是,在General右侧部分下的第二个屏幕截图中,没有列出Request Method、 Status Code或 的任何内容Remote Address,请参阅我之前提到的成功 api put 请求的屏幕截图以供参考:
真正奇怪的是,我的数据库正在使用更新的数据进行更新,因此在某种程度上,即使显示PUT为已取消,它也在某种程度上起作用。
该调用源自我页面上的 vue 组件,如果这很重要的话,我的后端是 PHP 的。
这是我的 .js 文件中执行以下操作的调用PUT:
return await SimpleService.put(`${app.API_URL}/matching/questions/${borrowerId}`,
JSON.stringify(answerData), {contentType: 'application/json'})
Run Code Online (Sandbox Code Playgroud)
因此,我认识到,如果没有看到附加的所有代码,要求一个黑白分明的答案是不太现实的,但如果有人甚至可以给我一些要检查的想法,我将不胜感激。
我试图包含我能想到的所有内容,而不包含不必要的内容,但如果需要我提供任何其他信息来解决此问题,请告诉我。
api ×1
ascii ×1
c# ×1
casting ×1
comparison ×1
file-watcher ×1
javascript ×1
mysql ×1
precision ×1
python ×1
python-3.x ×1
wsl-2 ×1