循环内部的Python变量在循环外部消失

2024-10-02 02:37:56 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑:如果您也遇到此问题,下面有两种可能的解决方案。

我正在制作一个非常简单的Python脚本,将几个标记文件合并在一起,同时保留所有换行符。我要合并的文件名为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)

该变量仅返回第三个标记文件,不显示合并文件

在这个问题上,我将不胜感激


Tags: 文件文本内容forfilesmergedmdmarkdown
2条回答

您需要实际将文件内容与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)

您正在循环中声明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)

相关问题 更多 >

    热门问题