ورود

View Full Version : نوشنتن در یک فایل (یه نگاهی به این بندازید)



saeid.sabouri75
پنج شنبه 18 آذر 1395, 15:02 عصر
سلام به همه

یه اسکریپت پایتون نوشتم واسه تبدیل txt به vcf

طرز کارش اینطوریه که فایل متنی رو میخونه و هر خطش رو تبدیل میکنه به یه فایل vcf


template = """BEGIN:VCARD
VERSION:3.0
N:THISNUM;;;
FN:THISNUM
TEL;TYPE=CELL:THISNUM
END:VCARD
"""



print "Your Number List are Converting To VCF..."
print ""
inputfile = open('/home/saeid_bibak/Desktop/TXT_2_VCF/list.txt','r') /// آدرس فایل متنی
counter=1
for thisnumber in inputfile:
thisnumber = thisnumber.rstrip()
output=template.replace('THISNUM',thisnumber)
outputfile = open ('/media/saeid_bibak/Win/VCF/0938/0938_0/%011i.vcf' % counter, 'w') // آدرس فایل های خروجی
outputfile.write(output)
print 'writing file %i' % counter
counter+=1


مشکلش اینه به تعداد خطوط فایل متنی . فایل خواهیم داشت. که این خیلی بده چون موقع باز کردن پوشه سیستم هنگ میکنه

حالا من میخوام به جای اینکه هر خط رو تبدیل کنه به یه فایل همه اینا رو تو یه فایل بنویسه

به عبارتی :

همه شماره های موجود داخل فایل متنی رو فقط داخل یک فایل vcf قرار بده . ( فقط یه فایل vcf داشته باشیم شامل همه شماره های موجود داخل فایل متنی )

امیدوارم منظورم رو متوجه بشید

pc_programmer
جمعه 10 دی 1395, 14:38 عصر
با سلام تا جای که من متوجه شدم شما اگر این دو کار رو انجام بدید مشکلتون حل میشه
outputfile رو از حلقه ببرید بیرون یعنی زیر counter تعریف کنید.
به جای 'w' از 'a' که مخخف append هست استفاده کنید یعنی با این کار میگید که به جای رایت کردن روی فایل جاری محتوا رو به فایل جاری اضافه کن (که در کد شما یک فایل جدید تشکیل میشه)
counter رو حذف کنید چون نمی خواید یک فایل جدید تشکیل بدید
یعنی کد شما به این شکل خواهد بود






template = """BEGIN:VCARD
VERSION:3.0
N:THISNUM;;;
FN:THISNUM
TEL;TYPE=CELL:THISNUM
END:VCARD
"""

print "Your Number List are Converting To VCF..."
print ""
inputfile = open('/home/saeid_bibak/Desktop/TXT_2_VCF/list.txt','r') /// آدرس فایل متنی
outputfile = open ('/media/saeid_bibak/Win/VCF/0938/0938_0/%011i.vcf', 'a') // آدرس فایل های خروجی
for thisnumber in inputfile:
thisnumber = thisnumber.rstrip()
output=template.replace('THISNUM',thisnumber)
outputfile.write(output)



اگه درست بود من رو هم در جریان بگذارید