在Windows 7中使用冒号(":")打开文件名

时间:2014-04-10 00:26:03

标签: python linux windows nfs colon

我正在编写一个应该在Windows和Linux上运行的Python应用程序,但我遇到了其中一个filenaming约定的问题。我需要加载一个名称中带冒号的JSON文件。但是,对于Windows 7,它似乎不可能,至少不是直接的。

这些文件存储在NFS驱动器上,因此我们可以在Windows 7中看到它,但无法打开它们。

有没有人有解决方法如何使用Python在Windows 7中读取包含冒号的JSON文件?我们有一个可能的解决方法(我们要避免)是通过SSH连接到Linux机箱,回显内容并将其发回。

显然,如果其他人有另一种方法会很棒。 Windows XP能够打开它们并且读得很好 - 这只是Win 7的一个问题。

-edit-更新:我们发现我们可以通过网络访问我们的NFS / AFS服务器。所以我们最终使用urllib2 urlopen来处理包含无效字符的所有JSON文件。到目前为止似乎运作良好。

1 个答案:

答案 0 :(得分:4)

引用http://support.microsoft.com/kb/289627

  

Windows和UNIX操作系统对可在文件名中使用的有效字符有限制。但是,每个操作系统的非法字符列表是不同的。例如,UNIX文件名可以使用冒号(:),但Windows文件名不能使用冒号(:)。 ...

     

要启用文件名字符映射,请创建字符转换文件并添加注册表项。

     

例如,以下内容将UNIX冒号(:)映射到Windows破折号( - ):

     

0x3a:0x2d;替换客户端:使用 - 在服务器上

     

创建文件名字符转换文件后,必须在系统注册表中指定其名称位置。要注册文件的路径和名称:

     
      
  • 使用注册表编辑器找到以下注册表项:
  •   
  • HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Server For NFS \ CurrentVersion \ Mapping
  •   
  • 编辑CharacterTranslation(REG_SZ)值。
  •   
  • 输入文件名字符转换文件的标准路径名。例如,C:\ Sfu \ CTrans.txt。
  •