разделить имя файла - PullRequest
2 голосов
/ 30 июля 2010

Как мне написать скрипт Python для разделения имени файла

например

LN0001_07272010_3.dat

и переименовать файл в LN0001_JY_07272010?

также, как мне поставить '|' а конец каждой строки в этом файле (содержании) каждой строки является записью?

Ответы [ 5 ]

4 голосов
/ 30 июля 2010
fn = "LN0001_07272010_3.dat".split('_')
new_fn = '{0}_JY_{1}'.format(fn[0], fn[1])

Обновление забыл добавить "JY" в new_fn

2 голосов
/ 30 июля 2010
filename="LN0001_07272010_3.dat"
newfilename=filename.split("_")[0]+"_JY_"+filename.split("_")[1]

linearr=[]
for line in open(filename).readlines():
     linearr.append(line+"|")

f=open(newfilename, "w")
for line in linearr:
     f.write(line)
f.close()
2 голосов
/ 30 июля 2010
name = "LN0001_07272010_3.dat"                    
parts = name.split('_')  # gives you ["LN0001","07272010","3.dat"]    
newname = parts[0] + "_STUFF_" + parts[1] ... etc

Для переименования вы можете использовать функцию файловой системы python,

Или вы можете использовать python print, чтобы выплевывать набор команд переименования для вашей ОС, записывать их в пакетный файл / файл оболочки и ПОСЛЕ проверки, что он выглядит правильно - запустите его.

print "mv ",name,newname   # gives; mv LN0001_07272010_3.dat LN0001_JY_07272010
0 голосов
/ 30 июля 2010
file_name = 'LN0001_07272010_3.dat'
new_file_name = '{0}_JY_{1}'.format(file_name.split('_')[0], file_name.split('_')[1])
0 голосов
/ 30 июля 2010

Поскольку операции на месте обычно являются плохой идеей , вот код, который создает новый файл, оставляя исходный файл без изменений:

fn = "LN0001_07272010_3.dat"
fn1, fn2 = fn.split("_")[:2]
new_fn = "_".join([fn1, "JY", fn2])
open(new_fn, "w").writelines(line.rstrip()+"|\n" for line in open(fn))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...