import os
import sys
files = os.listdir(sys.argv[1])
for file in files:
if file[-4:] == ".png":
os.rename(file, file.replace('\r', ''))
使用上面的代码从文件名中删除\ r \ n,但有些如何执行时我得到以下错误
Traceback (most recent call last):
File "renameImages.py", line 9, in <module>
os.rename(f, f.replace('\r', ''))
OSError: [Errno 2] No such file or directory
我哪里错了?
答案 0 :(得分:5)
您没有告诉它在argv[1]
中声明的文件目录
试试os.rename(sys.argv[1]+"/file",sys.argv[1]+"/"+replace('\r'','')
(或Windows的'\\')。
答案 1 :(得分:1)
您可以使用str.rstrip('\ r')方法从字符串的右侧删除一组字符:
>>> s="this is your brain on drugs\r\n\r\n"
>>> s
'this is your brain on drugs\r\n\r\n'
>>> s=s.rstrip('\n\r ')
>>> s
'this is your brain on drugs'
您在帖子中说文件名末尾有\r
;这将是非常不寻常的。您确定您的文件名在字符串末尾有一个\r
,或者您认为它是因为您使用Python打印它吗?请记住,Python会自动返回您打印的字符串。
修改强>
好的:文件名最后确实有一个\r
。我的第一个建议是修复产生这种不友好文件名的脚本......
对于此scipt,您需要将前面或CD上的目录名称添加到相关目录中。由于THIS回答有前置,这里是CD'ing:
try:
os.chdir(sys.argv[1])
except OSError:
print "can't change to ",sys.argv[1]
sys.exit(1)
# proceed with the rest of your script...