我只是惊喜地发现Python的编译器包的文档,但注意到它已经在Python 3.0中消失了,没有任何明确的替换或解释.
我似乎无法在python-dev上找到关于如何做出这个决定的讨论 - 有没有人对这个决定有任何见解?
我使用Git本身如何处理行尾很高兴,通过core.autocrlf,core.eol+ gitattributes(Tim的文章是优秀).
我有一个autocrlf设置为的Windows Git仓库true.因此,所有文本文件都存储在repo中,LF并作为工作目录存放在工作目录中CRLF.这个仓库是从一个SVN仓库中克隆出来的,我们仍然使用这个仓库从/拉到(SVN仓库是我们用于触发CI等的中央,受祝福的仓库).
但我不知道git-svn在推/拉操作期间如何处理行结尾.
任何人都可以解释git-svn在这个例子中做什么?
Windows终端(像cmd.exe这样的文本应用程序周围的用户界面)真的很糟糕.
Windows终端显然无法做到的Unix风格终端有很多功能,例如,如果你想通过拖动边框来重新调整两个维度的窗口大小.Windows终端只允许您更改其长度.
切换和粘贴,在Linux或Unix上,没问题 - 选择框很好地包装,所以你可以剪切多行表达式.Windows终端(即使在快速编辑模式下)强制使用一个没有实际用途的奇怪的矩形选择框 - 您必须重新格式化在记事本中复制的所有内容!
事实上,只要我进入"编辑"模式,它就会阻止应用程序 - 我确信有些人希望能够在不停止业务关键型服务器的情况下进行剪切和粘贴.
我敢肯定,如果我们把它放在心上,我们可以想到更多的错误 - 但不要抱怨......我们能做些什么才能让它变得更好?
更新:为了澄清,我不打算替换cmd.exe - Powershell和CygWin都提供了更好的选择.我正在尝试替换控制台应用程序,即围绕Windows中所有文本应用程序的GUI.
我希望我的Python脚本能够在Windows中读取Unicode命令行参数.但似乎sys.argv是以某种本地编码而不是Unicode编码的字符串.如何以完整的Unicode读取命令行?
示例代码: argv.py
import sys
first_arg = sys.argv[1]
print first_arg
print type(first_arg)
print first_arg.encode("hex")
print open(first_arg)
Run Code Online (Sandbox Code Playgroud)
在我为日语代码页设置的PC上,我得到:
C:\temp>argv.py "PC???????08.09.24.doc"
PC???????08.09.24.doc
<type 'str'>
50438145835c83748367905c90bf8f9130382e30392e32342e646f63
<open file 'PC???????08.09.24.doc', mode 'r' at 0x00917D90>
Run Code Online (Sandbox Code Playgroud)
这是我认为的Shift-JIS编码,并且它"适用于"该文件名.但它打破了文件名,其中的字符不在Shift-JIS字符集中 - 最终的"打开"调用失败:
C:\temp>argv.py Jörgen.txt
Jorgen.txt
<type 'str'>
4a6f7267656e2e747874
Traceback (most recent call last):
File "C:\temp\argv.py", line 7,
in <module>
print open(first_arg)
IOError: [Errno 2] No such file or directory: 'Jorgen.txt'
Run Code Online (Sandbox Code Playgroud)
注意 - 我在谈论Python 2.x,而不是Python 3.0.我发现Python 3.0提供sys.argv了正确的Unicode.但是转换到Python 3.0还有点早(由于缺乏第三方库支持).
更新:
一些答案说我应该根据sys.argv编码的内容进行解码.问题在于它不是完整的Unicode,因此某些字符不可表示.
这是让我感到悲伤的用例:我已经在Windows资源管理器中将文件拖放到.py文件中.我有各种字符的文件名,包括一些不在系统默认代码页中的字符.在所有情况下,当在当前代码页编码中无法表示字符时,我的Python脚本无法通过sys.argv获取正确的Unicode文件名.
肯定有一些Windows API用完整的Unicode读取命令行(而Python 3.0就是这样).我假设Python …
我正在寻找一种方法来生成伪随机数序列,这将为任何平台上的给定种子产生相同的序列结果.我假设rand()/ srand()不会保持一致(我对这个假设很容易出错).
我有一个Python程序,它做了耗时的计算.由于它使用高CPU,并且我希望我的系统保持响应,我希望程序将其优先级更改为低于正常值.
我发现了这一点: 在Windows中设置进程优先级 - ActiveState
但我正在寻找一个跨平台的解决方案.
我不确定如何boost::is_any_of使用一组字符来分割字符串,其中任何一个字符都应该拆分字符串.
我想做这样的事情,因为我理解is_any_of函数采用Set参数.
std::string s_line = line = "Please, split|this string";
std::set<std::string> delims;
delims.insert("\t");
delims.insert(",");
delims.insert("|");
std::vector<std::string> line_parts;
boost::split ( line_parts, s_line, boost::is_any_of(delims));
Run Code Online (Sandbox Code Playgroud)
但是,这会产生一个boost/STD错误列表.我应该坚持is_any_of还是有更好的方法来做到这一点,例如.使用正则表达式拆分?
我想在Linux C中找到md5sum文件,是否有任何API我可以发送文件名来获取该文件的md5sum.
我有兴趣尝试分布式版本控制系统.git听起来很有希望,但我在git的Windows端口看到了一条说"不要使用非ASCII文件名"的注释.我现在找不到,但有这个链接.它现在让我脱离git,但我不知道其他选项是否更好.
支持非ASCII文件名对我的日本公司至关重要.我正在寻找一个内部存储文件名为Unicode的文件,而不是依赖于平台的编码,这会导致无休止的悲伤.所以:
有关良好的跨平台库的任何建议,以读取DWARF格式的ELF文件调试信息?我想在Python程序中阅读DWARF调试信息.