I was wondering if there was anyway I could modify my code to only post the basename of the file, instead of the entire file including the extension.. I'm new to python, so I don't know much, and I don't want to modify something and have it completely break.
import glob
import os
os.chdir( "C:/headers" )
txt = open( 'C:/files.txt', 'w' )
for file in glob.glob( "*.h" ):
with open( file ) as f:
contents = f.read()
if 'struct' in contents:
txt.write( "%s\n"%file )
txt.close()
Basically, what it does is search through a directory of header files, and if it has the struct string in the file, it'll print the files in a txt file. However, when I run it, the txt file opens with all the files listed, but I want it to only list the basename of the file, I don't need the .h at the end of it.
Please help, thank you!
解决方案
Perhaps this will help:
import glob
import os
import re
os.chdir( "C:/headers" )
txt = open( 'C:/files.txt', 'w' )
for file in glob.glob( "*.h" ):
with open( file ) as f:
contents = f.read() [...]
if 'struct' in contents:
txt.write( "%s\n"% re.sub('\.h$', '', file) )
txt.close()
Good luck!