我知道对于许多人来说,这将是非常简单的。我刚开始学习Python,并需要一些基本文件处理的帮助。
我经常截屏,这些截图最终会出现在我的桌面上(因为这是默认设置)。我知道我可以更改屏幕截图设置以自动保存到其他地方。然而,我认为这个程序将是教我如何分类文件的好方法。我想使用Python自动筛选桌面上的所有文件,识别那些以.png结尾的文件(截图的默认文件类型),并将其移动到我命名为“Archive”的文件夹中。
以下是我的进展:
import os
import shutil
source = os.listdir('/Users/kevinconnell/Desktop/Test_Folder/')
destination = 'Archive'
for files in source:
if files.endswith('.png'):
shutil.move(source, destination)
我已经尝试了很多次,但没有进展。在这个最新版本中,当我运行程序时,遇到以下错误:
Traceback (most recent call last): File "pngmove_2.0.py", line 23, in shutil.move(source, destination) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 290, in move TypeError: coercing to Unicode: need string or buffer, list found
我认为问题出在源文件和目标文件的正确命名上。然而,到目前为止,我一直无法找到有关如何解决此问题的帮助。我使用os.path.abspath()确定了上面所见文件路径。
非常感谢您的帮助,希望您能使我的内容更加通俗易懂。
最新更新
我相信我离解决这个问题很近了。我肯定如果我继续尝试,我会找到答案的。只是让所有帮助过我的人知道...
这是我正在使用的当前代码:
import os
import shutil
sourcepath ='/Users/kevinconnell/Desktop/'
source = os.listdir(sourcepath)
destinationpath = '/Users/kevinconnell/Desktop/'
for files in source:
if files.endswith('.png'):
shutil.move(os.path.join(sourcepath,'Test_Folder'), os.path.join(destinationpath,'Archive'))
这个操作可以将我的'Test_Folder'文件夹重命名为'Archive',但是它会移动文件夹内所有的文件,而不是只移动以'.png'结尾的文件。
mv *.png Archive
- MattDMo