我在MSYS2 shell中测试用mingw编译的C程序时遇到了一个问题:我编写了一个命令行解析器,它根据windows约定接受选项(从./example.exe /o test
开始)。如果我这样调用我的程序来生成输出文件:
argv[1]
O:/
中的最终结果是CMD.EXE
。从运行#include <stdio.h>
int main(int argc, char **argv)
{
if (argc > 1)
{
puts(argv[1]);
}
return 0;
}
的控制台窗口进行测试时,它可以正常工作。这个真正最小的程序演示了这种行为:
$ ./example.exe /o
O:/
CMD.EXE
所以我猜这是MSYS2 shell尝试提供帮助,并将看起来像root下面的单字母路径的内容替换为驱动器字母语法。有没有办法禁用这种行为?总是启动from df2gspread import df2gspread as d2g
import pandas as pd
# your DataFrame
df = pd.DataFrame(0, index=range(9000), columns=range(9))
# file ID or path to spreadsheet: '/folder/folder/spreadhsheet'
spreadsheet = '2VVfq...nhR3I'
# uploading
d2g.upload(df, spreadsheet, wks_name="second worksheet")
进行测试有点麻烦。
答案 0 :(得分:2)
您可以使用MSYS2_ARG_CONV_EXCL
环境变量来禁用此行为。例如,尝试运行:
MSYS2_ARG_CONV_EXCL=\* ./example.exe /o test