windows下创建文件或文件夹时,剔除不符要求的字符

from string import maketrans

用 translate 方法就可以:

name.translate(None, "|\\?*<\":>+[]/‘")

或者替换为下划线:

from string import maketrans
table = maketrans("|\\?*<\":>+[]/‘", ‘_‘* 13)
name = name.translate(table)

如果 nameunicodetable 的形式略有区别:

table = dict( (ord(c), ord(‘_‘)), for c in "|\\?*<\":>+[]/‘" )

如果要删掉字符则把 ord(‘_‘) 改为 None

另外并非合法字符构成的就是合法文件名,比如 .nul 之类也不是合法的文件名,路径过长也不合法。

参考与网上搜索

时间: 2024-08-29 21:50:49

windows下创建文件或文件夹时,剔除不符要求的字符的相关文章

windows下创建.gitignore文件(git提交时忽略某些文件)

相信大家在使用eclipse的git插件提交文件时,都会遇到这样一个问题:就是有可能不小心把不必要的文件也被提交了(如.project,.classpath文件或者.settings文件夹及其下面的文件等),那有没有办法把这些文件忽略掉呢? 方法很简单,就是在项目目录下新建.gitignore文件,然后在里面声明要忽略的文件夹或者文件就可以了.麻烦的地方来了,因为该文件是点开头,没有文件名,没办法直接在windows下创建.我们可通过安装Git,然后在项目根目录上右键选择"Git Bash He

Windows下创建.gitgnore文件

相信使用过git的朋友可能遇到过,直接在windows下创建.gitgnore文件失败.类似截图那样 上网查了一下,有两种方法. 方法1: 此方法较为简单,前提是安装了git bash. 用git bash:cd 到 相应目录:然后输入命令touch .gitignore创建 方法2: 步骤1:在E:\Project\git_basic_homework创建一个1.txt文件 步骤2:按键盘Shift+键盘Ctrl+鼠标右击,选择'在此处打开命令窗口',弹出cmd命令框 步骤3:在cmd命令窗口

Windows下PHP修改Hosts文件的方法

通过PHP程序完成修改Hosts文件原理如下: 1,首先是写一个.bat文件 2,使用system(),调用.bat完成修改Hosts的目的 代码如下: //创建.bat $filename = "updata.bat"; //'@echo 127.0.0.1 baidu.com >>C:\Windows\System32\Drivers\etc\hosts 关于.bat中的内容可以参考DOS命令行 file_put_contents($filename,'@echo 12

解决vs2013下创建的python文件,到其他平台(如linux)下中文乱码(或运行时报SyntaxError: (unicode error) &#39;utf-8&#39; codec can&#39;t decode byte...)

Vs2013中创建python文件,在文件中没输入中文时,编码为utf-8的,如图 接着,在里面输入几行中文后,再次用notepad++查看其编码如下,在vs下运行也报错(用cmd运行就不会): 根据以有经验,这是字符编码的问题了,试着将python文件的转化为utf-8的,直接在notepad++上转utf-8 无bom编码格式的,保存,打开vs,会有以下提示 这里不要选择no吧,不然可能会提示以下类似的错误 如果有提示,直接关闭,不然的话,vs又会将此文件保存为ascii格式了 解决vs20

windows下编辑过的文件在Linux下用vi打开行尾会多出一个^M符号

一般情况下,windows下编辑过的文件在Linux下用vi打开行尾会多出一个^M符号,如下图: 这是因为Windows等操作系统用的文本换行符和UNIX/Linux操作系统用的不同,Windows系统下输入的换行符在UNIX/Linux下不会显示为“换行”,而是显示为 ^M 这个符号(这是Linux等系统下规定的特殊标记,占一个字符大小,不是 ^ 和 M 的组合,打印不出来的). 可以使用下面几种方法处理: 1.使用vi的替换功能.启动vi,进入命令模式,输入以下命令: :%s/^M$//g

windows 下创建 sqlite 数据库

说明:windows 下执行创建 sqlite 数据库命令后数据库文件不会马上生成,需要创建表以后才会生成. 1.将 sqlite3.exe 文件放在任何位置(如放在 d:\tools )2.在 CMD 下进入到 d:\tools 下3.在 CMD 命令提示符下输入 sqlite3 test.db ( test.db 是数据库名)回车注意:这时 test.db 数据库确实已经创建好了但是还是个临时文件,所以现在需要要输入SQL命令创建表4.create table test(name text)

【cocos2d-x学习笔记】Windows下创建项目&amp;Linux环境搭建&amp;安卓环境搭建

一.windows下创建新项目 打开CMD将路径设置到cocos软件下的tools下的project-creator下,执行命令:create_project.py -project HelloWorld -package com.zsc.HelloWorld -language cpp 二.Linux环境搭建(QT配置) 1. 安装linux系统,ubuntu 14.04 64位 2. 安装支持软件 第1步:sudo apt-get update(运行此命令) 第2步:sudo apt-get

windows下创建/删除服务

windows下创建/删除服务 1.      windows下创建/删除服务 1.1.    创建服务 命令格式: sc [servername] create Servicename [Optionname= Optionvalues] servername 可选,可以使用双斜线,如\\\\myserver,也可以是\\\\192.168.0.1来操作远程计算机.如果在本地计算机上操作就不用添加任何参数. Servicename 在注册表中为service key制定的名称.注意这个名称是不

Windows下创建文件的权限问题

在Windows下如果在某个目录下建立一个文件,那么新建立的文件会默认继承该目录的所有权限(父子关系) 如果将一个文件从一个目录移动到到另一个目录下,那么该文件的权限并不会继承自新目录的权限而是还保留原目录的权限 如果将一个文件从一个目录复制到到另一个目录下,那么该文件的权限将会丢失原目录的权限而继承新目录的权限(新建再写入) 通过FTP上传的文件跟3一样也是新建再写入 凡是被继续的权限都不能比父权限低或被删除(父子关系) 但还是有办法解决此问题,即解除目录与文件继承的关系(解除父子关系) 右键

有用的2个 Windows 下批处理文件(bat文件)

创建多个文件夹(目录): 新建一个记事本:win + R –>输入notepad 在笔记本中输入如下: 1 mkdir Would 2 mkdir you 3 mkdir marry 4 mkdir me 另存为以文件扩展名为bat,编码用默认或者是utf-8. 上面中的mkdir后面紧跟空格再加上你的文件名字,这里文件名字适合英文,中文会出现乱码,由于在刚学习网站时需要经常新建文件夹,所以该方法方便一些. 注意:这里放bat文件在自己想生成的目录之下. 最后双击该bat文件,效果如下: 压缩后