Dear Tutor,
I have made some progress!
But not yet got the results.
Attached is revised code.
Specifically, the problem in below:
for root, dirs, files in os.walk(".", topdown=False):
for name in files:
print(os.path.join(root, name))
os.rename(path + name, path + name.replace("---", "changed"))
#os.rename(path + "\\"+ name, path + "\\"+ name.replace("---",
"changed")
files[name] = os.sep.join([dirpath, name])
print (files)
for name in dirs:
print(os.path.join(root, name))
.\---DAT1\---DAT3\---000010.txt
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-6-316f0c967a9b> in <module>()
2 for name in files:
3 print(os.path.join(root, name))
----> 4 os.rename(path + name, path + name.replace("---", "changed"))
5 #os.rename(path + "\\"+ name, path + "\\"+ name.replace("---",
"changed")
6 files[name] = os.sep.join([dirpath, name])
FileNotFoundError: [WinError 2] The system cannot find the file specified:
'E://---000010.txt' -> 'E://changed000010.txt'
Thanks once again for your time spent on this.
best,
banda.
+
________________________________
From: banda gunda
Sent: Friday, August 11, 2017 8:10 AM
To: [email protected]
Subject: conditional renaming folder and files in the tree
Dear Tutor,
I want to change the name of the folders and the files in the tree.
All those folders and files starting with name string '---'.
Examples:
If a folder name is : \---DAT1
I want to change this to: \changedDAT1
If a file name is: \---00001.txt
I want to change this to: \changed00001.txt
I have attached the code and output to this email.
Specifically, I like to provide correct syntax (dst / destination) for line 6
code block below!
I have not understood the syntax.
Thanks in advance, for your help .
best,
banda
+
for root, dirs, files in os.walk(".", topdown=False):
for name in files:
print(os.path.join(root, name))
os.rename(name.replace("---", "changed"))
list_of_files[name] = os.sep.join([dirpath, name])
print (list_of_files)
for name in dirs:
print(os.path.join(root, name))
.\---DAT1\---00001.txt
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-6-b679212713d0> in <module>()
2 for name in files:
3 print(os.path.join(root, name))
----> 4 os.rename(name.replace("---", "changed"))
5 list_of_files[name] = os.sep.join([dirpath, name])
6 print (list_of_files)
TypeError: Required argument 'dst' (pos 2) not found
_end_of_email
In [1]:
import os
import sys
import glob
In [2]:
print ("Current directory is %s: " %os.getcwd())
Current directory is C:\Users\mysku\AnacondaProjects:
In [3]:
path = "E://"
# Check current working directory.
retval = os.getcwd()
print ("Current working directory %s" % retval)
# Now change the directory
os.chdir( path )
# Check current working directory.
retval = os.getcwd()
print ("Directory changed successfully %s" % retval)
Current working directory C:\Users\mysku\AnacondaProjects
Directory changed successfully E:\
In [4]:
# listing directories
print ("The dir is: %s"%os.listdir(os.getcwd()))
The dir is: ['---DAT1', '---DAT2', '---00007.txt', '---00008.txt',
'---00009.txt']
In [5]:
for root, dirs, files in os.walk(".", topdown=False):
for name in dirs:
print ("names of folders are: ")
print(os.path.join(root, name))
for name in files:
print("names of files in folders are: ")
print(os.path.join(root, name))
names of files in folders are:
.\---DAT1\---DAT3\---000010.txt
names of folders are:
.\---DAT1\---DAT3
names of files in folders are:
.\---DAT1\---00001.txt
names of files in folders are:
.\---DAT1\---00002.txt
names of files in folders are:
.\---DAT1\---00003.txt
names of files in folders are:
.\---DAT2\---00005.txt
names of files in folders are:
.\---DAT2\---00006.txt
names of files in folders are:
.\---DAT2\---00007.txt
names of folders are:
.\---DAT1
names of folders are:
.\---DAT2
names of files in folders are:
.\---00007.txt
names of files in folders are:
.\---00008.txt
names of files in folders are:
.\---00009.txt
this works for root folders
for fileName in os.listdir("."): os.rename(fileName,
fileName.replace("---", "changed"))
In [6]:
for root, dirs, files in os.walk(".", topdown=False):
for name in files:
print(os.path.join(root, name))
os.rename(path + name, path + name.replace("---", "changed"))
#os.rename(path + "\\"+ name, path + "\\"+ name.replace("---",
"changed")
files[name] = os.sep.join([dirpath, name])
print (files)
for name in dirs:
print(os.path.join(root, name))
.\---DAT1\---DAT3\---000010.txt
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-6-316f0c967a9b> in <module>()
2 for name in files:
3 print(os.path.join(root, name))
----> 4 os.rename(path + name, path + name.replace("---", "changed"))
5 #os.rename(path + "\\"+ name, path + "\\"+ name.replace("---",
"changed")
6 files[name] = os.sep.join([dirpath, name])
FileNotFoundError: [WinError 2] The system cannot find the file specified:
'E://---000010.txt' -> 'E://changed000010.txt'
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor