簡體   English   中英

Python - for 循環內的變量在循環外消失

[英]Python - variable inside for loop disappears outside of loop

編輯:如果您也遇到過這個問題,下面有兩種可能的解決方案。

我正在制作一個非常簡單的 Python 腳本來合並幾個 markdown 文件,同時保留所有換行符。 我要合並的文件稱為markdown/simple1.mdmarkdown/simple2.mdmarkdown/simple3.md (它們位於名為markdown/的文件夾中。

這是simple1.md的文本內容:

Page 1

This is some useless content

這是simple2.md的文本內容:

Page 2

This is some useless content

這是simple3.md的文本內容:

Page 3

This is some useless content

這是我到目前為止所擁有的:

# Define files I want to merge

filenames = ['markdown/simple1.md', 'markdown/simple2.md', 'markdown/simple3.md']

# Merge markdown files into one big file

merged_filecontent = ""
file = ""

for file in filenames:
  file = open(file).read()
  file += "\n"
  # print(file)
  merged_filecontent = file
  print(merged_filecontent)

這完美地工作。 但是,一旦我嘗試在for循環之外調用變量,如下所示:

# Define files I want to merge

filenames = ['markdown/simple1.md', 'markdown/simple2.md', 'markdown/simple3.md']

# Merge markdown files into one big file

merged_filecontent = ""
file = ""

for file in filenames:
  file = open(file).read()
  file += "\n"
  # print(file)
  merged_filecontent = file
  
# Call variable outside of for loop

print(merged_filecontent)

該變量僅返回第 3 個 markdown 文件,並且不顯示合並后的文件。

我將不勝感激有關此問題的任何幫助。

您正在循環內重新聲明file變量。 嘗試:

filenames = ['markdown/simple1.md', 'markdown/simple2.md', 'markdown/simple3.md']
merged_filecontent = ""

for file in filenames:
  with open(file) as f:
    merged_filecontent += f.read()+"\n"

print(merged_filecontent)

您實際上需要將文件內容與merged_filecontent += file合並

# Define files I want to merge

filenames = ['markdown/simple1.md', 'markdown/simple2.md', 'markdown/simple3.md']

# Merge markdown files into one big file

merged_filecontent = ""
file = ""

for file in filenames:
  file = open(file).read()
  file += "\n"
  # print(file)
  merged_filecontent += file
  
# Call variable outside of for loop

print(merged_filecontent)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM