การผสานหลายไฟล์ทีละบรรทัด Notepad ++ Python? [ปิด]


0

ฉันมีไฟล์ข้อความหลายไฟล์ฉันต้องการสร้างเพลย์ลิสต์จาก & ต้องการรวมไว้ในลำดับบรรทัดตามลำดับ ฉันตระหนักถึงสคริปต์ Python ตัวอย่างเพื่อรวมไฟล์ แต่ไม่ทราบวิธีแก้ไขสคริปต์เพื่อทำสิ่งต่อไปนี้ มันจะได้รับการชื่นชมถ้ามีคนสามารถให้สคริปต์ทำงาน

การป้อนข้อมูล:

ไฟล์ Text_A

Video_A1
Video_A2
Video_A3

ไฟล์ Text_B

Video_B1
Video_B2
Video_B3

ไฟล์ Text_C

Video_C1
Video_C2
Video_C3

เอาท์พุท:

Video_A1
Video_B1 
Video_C1
Video_A2
Video_B2
Video_C2
Video_A3
Video_B3
Video_C3

หากคุณวางเมาส์ไว้บนแท็กหลามคุณจะเห็นว่าคำถามเกี่ยวกับสคริปต์อยู่ในหัวข้อเรื่อง Stack Overflow ไม่ใช่ที่นี่ แต่ถึงอย่างนั้นไม่ใช่ไซต์ "เขียนสคริปต์ให้ฉัน" ผู้คนจะช่วยคุณแก้ปัญหาเฉพาะถ้าคุณพยายามทำด้วยตัวเองและบันทึกสิ่งที่คุณทำและพบปัญหา
fixer1234

คำตอบ:


1

ลองใช้สคริปต์ Python นี้ คุณต้องเปลี่ยน 3 บรรทัดแรก newlineควรตั้งค่าเป็น "\ n" บน Linux และ "\ r \ n" บน Windows filesคือรายการของอินพุตไฟล์และoutfileเป็นชื่อของไฟล์เอาต์พุต

newline = "\r\n"
files = ["A.txt", "B.txt", "C.txt"]
outfile = "Output.txt"

for i in range(0, len(files)):
  files[i] = open(files[i], "rU")

with open(outfile, "w") as out:
  while True:
    finished = True
    for f in files:
      line = f.readline()
      if line != "":
        finished = False
        line = line.replace("\n", "")
        out.write(line + newline)
    if finished:
      break

นี่คือสคริปต์อื่นที่คุณสามารถใช้ได้จากในแผ่นจดบันทึก ++ หากคุณติดตั้งปลั๊กอิน PythonScript

newline = "\r\n"

files = []
for (name, id, idx, view) in notepad.getFiles():
  if view != 0:
    continue
  notepad.activateBufferID(id)
  files.append(editor.getText().splitlines())

notepad.new()

lineNr = 0
while True:
  lines = ""
  for file in files:
    if len(file) > lineNr: lines += file[lineNr] + newline
  if(len(lines) > 0): editor.appendText(lines)
  else: break
  lineNr += 1

สคริปต์ที่ดี แต่น่าเสียดายที่ต้องใช้เส้นทางไฟล์แบบเต็ม ด้านบนเป็นตัวอย่างฉันต้องสามารถรวมหลายเพลย์ลิสต์ที่ฉันเปิดใน notepad ++ และควรเอาท์พุทไปยังแท็บใหม่ ฉันลองใช้ files = notepad.getFiles () และรหัสอื่นจากสคริปต์รวม แต่สามารถใช้ไฟล์ C: \ Output.txt เป็นไฟล์เปล่าได้เท่านั้น
joeatari

1
@joeatari ผมได้โพสต์บางอย่างบนPastebinคุณอาจจะสนใจใน. มัน riffs ปิดนี้โพสต์ StackOverflowซึ่งเป็นที่ซ้ำกันใน SuperUser ที่นี่ รหัสของฉันสำหรับ Python และ Notepad ++ อาจไม่เป็นระเบียบหรือรวมกันเป็น SpiderPig's แต่หลังจากการทดสอบเล็กน้อยฉันเชื่อว่าควร (โดยพื้นฐาน) ทำสิ่งที่คุณต้องการ
Anaksunaman

สคริปต์ของ Anaksunaman นั้นดี แต่มีบางสิ่งที่ฉันจะทำแตกต่างกันเพื่อปรับปรุงความน่าเชื่อถือของสคริปต์ ดังนั้นฉันจึงเพิ่มโซลูชันอื่นลงในคำตอบของฉัน
SpiderPig

นั่นคือหัวเข่าของผึ้งที่นั่น SpiderPig ฉันไม่สามารถพูดแทนโจอาทาริได้ แต่จากท้ายสุดขอขอบคุณที่แบ่งปัน =)
Anaksunaman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.