程序的安装文件夹名字空格称中间有空格怎么补救

帐号:密码:下次自动登录{url:/nForum/slist.json?uid=guest&root=list-section}{url:/nForum/nlist.json?uid=guest&root=list-section}
贴数:1&分页:最爱敏敏发信人: loveminmin (最爱敏敏), 信区: NetPRG
标&&题: FTP get 文件的时候,如果文件名有空格该怎么办?
发信站: 水木社区 (Mon Dec 26 16:13:56 2005), 转信 && socket传送,在获得列表那儿就卡主了,LIST directoryName,这里如果目录名有空格该怎么办?
在windows自己的ftp程序中可以用加引号的方法来解决,但是我在程序中给directoryName加引号好像没有用,请问该如何解决.
谢谢 && -- && ※ 来源:·水木社区 newsmth.net·[FROM: 210.22.79.*]
文章数:1&分页:
抽奖到手软!将狂欢进行到底!Linux 文件夹名字有空格,如何重命名?_百度知道Python 处理有空格的文件名的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
已注册用户请 &
Python 处理有空格的文件名的问题
15:27:19 +08:00 · 2067 次点击
代码想复制文件夹下的 .md 文件到另一个文件夹中
def copy_file ( dirname ):
&&&Copy .md file in a given directory and its subdirectories.
for root, dirs, file in os.walk ( dirname ):
for f in file:
if os.path.splitext (root+f )[1] == &.md&:
os.system (&cp %s ~/file/&%os.path.join ( root, f ))
copy_file ('.')
可是因为文件名带空格,报这样的错误,请问有什么好的处理方法呢?
cp: cannot stat ‘./Chapter ’: No such file or directory
cp: cannot stat ‘ 01 ’: No such file or directory
cp: cannot stat ‘ Best ’: No such file or directory
cp: cannot stat ‘ Friends/from-morse-to-binary.md ’: No such file or directory
cp: cannot stat ‘./Chapter ’: No such file or directory
cp: cannot stat ‘ 02 ’: No such file or directory
cp: cannot stat ‘ Code ’: No such file or directory
16 回复 &| &直到
19:00:51 +08:00
& & 15:33:11 +08:00
空格转发成% 20 试试
& & 15:33:20 +08:00
& & 15:45:03 +08:00
我能吐槽这 Python 的用法吗,为什么不用自带模块还要去调用命令,而且还是写在循环里
& & 15:45:46 +08:00 via Android
顺便把+号也处理了,我前阵子也是写文件系统相关的东西!
& & 15:57:15 +08:00 via iPhone
文件名加引号:
&cp '%s' ~/file/&
不过还是用 Python 来复制吧,你这样有点多此一举。
& & 16:11:15 +08:00 via Android
看到楼主用 os.path 想必是没找到 os.copy
其实是 shutil.copy
& & 16:32:31 +08:00
谢谢,文件名加引号真的成功了。
我试着用 python shutil.copyfile 进行复制
filename = os.path.join (root, f )
shutil.copyfile (filename, &~/file1/%s&%f )
提示错误。
```
Traceback (most recent call last ):
File &walk.py&, line 17, in &module&
copy_file ('.')
File &walk.py&, line 15, in copy_file
shutil.copyfile (filename, &~/file1/%s&%f )
File &/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py&, line 83, in copyfile
with open (dst, 'wb') as fdst:
IOError: [Errno 2] No such file or directory: '~/file1/from-morse-to-binary.md'
```
& & 16:37:41 +08:00 via Android
@ ~当 home 不是哪里都通用的
& & 16:49:52 +08:00
& & 16:51:32 +08:00
@ Python 是不认 ~ 的,所以你得手动写完整路径,或用 os.path.expanduser () 补全路径。
& & 16:59:27 +08:00 via Android
第一, Python 自带 copy 调用
第二, Python 自带转义函数
非要自己手拼命令,都不知道是怎么死的
& & 17:01:37 +08:00
@ 谢谢,又学到一个用法了。
& & 17:05:11 +08:00
@ 嗯嗯,谢谢大家的指点了。这是在大家帮助下,完善好的代码。
想将文件夹下的 aaaBbbCcc.md 的文件复制为 2014-09-%d-aaa-bbb-ccc.md
import os
import shutil
import re
def copy_file ( dirname ):
&&&Copy .md file in a given directory and its subdirectories.
for root, dirs, file in os.walk ( dirname ):
for f in file:
if os.path.splitext (root+f )[1] == &.md&:
filename = os.path.join (root, f )
list = re.sub ( r&([A-Z])&, r& \1&, f ).split ()
f = '-'.join (list ).lower ()
shutil.copyfile (filename, os.path.expanduser (&~/file2/d-%s&%(i,f )))
copy_file ('.')
& & 17:11:14 +08:00
文件路径用双引号
& & 17:13:21 +08:00
@ Okay, copy_file ('.') 修改为=& copy_file (&.&)
& & 19:00:51 +08:00
pipes.quote
@
& · & 541 人在线 & 最高记录 2067 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.7.5 · 48ms · UTC 23:50 · PVG 07:50 · LAX 16:50 · JFK 19:50? Do have faith in what you're doing.&&&&&&&&&&&&&&&&&&
posts - 5,comments - 0,trackbacks - 0
  女朋友最近在学习Python,今天在弄EasyGui的安装,本来非常简单的一个问题,在CMD中进入EasyGui的目录,然后调用Python安装目录下的Python.exe执行EasyGui下的setup.py即可。整个命令就是:"C:\Program Files (x86)\Python\python.py setup.py install "(省略了EasyGui的路径前缀)但是很奇怪的就是CMD 总是提示 "C:\Program &不是外部或内部命令,也不是可运行的程序"。恩,刚开始以为是这两个文件不能放在同一个目录下,调整后不可。后又以为是CMD程序调用需要命令,然后试用Start或Call命令调用也是提示同样的错误。突然灵光一闪,是不是因为路径名包含空格的原因呢。果不其然。试用路径缩写解决之。现将这种问题的解决思路整理,以免忘记!
1)最简单的方法就是给路径名上加上&& 然后cd或执行即可;
2)用缩写。比如c:\Program Files缩写为c:\Progra~1,再来刨根问底查查这个命名是否有规则,于是找到:
& & & & & &采用8个字符缩写,即写头六个字母(略去空白),另加波浪号和1,首字母不足六个字母,略去空白,用了第二个词的字母,凑成六个。例如:&&&&&&&&&&&&&&&&&&& "Documents and Settings& -- DOCUME~1&&&&&&&&&&&&&&&&&&& "Local Settings" -- LOCALS~1 (注意略去空白,用了第二个词的字母,凑成六个,再加波浪号和1)。
& & & & & &如果多个文件前6字符一样怎么办?为什么最后是1而不是0或者其他数字呢?看看这个例子
& & & & & & & & & & 假设下面是你的C盘根目录中的文件夹:& & & & & & & & & & & & & &Program Files& & & & & & & & & & & & & &Progra file& & & & & & & & & & & & & &Progra zhang& & & & & & & & & & 则三个目录分别表示为:C:\Progra~1; C:\Progra~2; C:\Progra~3;
3)绕过去,创建一个镜像。例如在CMD中输入 subst w: "C:\Documents and Settings"。然后就可以直接用w:\替代C:\Documents and Settings了
阅读(...) 评论()

我要回帖

更多关于 linux 有空格的文件夹 的文章

 

随机推荐