В first.py
измените свой код следующим образом.
Режим
w
предназначен для операции записи. В каждой итерации цикла for вы перезаписываете последний контент и пишете новый. Итак, input.txt
имел в этом (1007) * (наконец).
list=["ab","cd","ef"]
for i in list:
with open("input.txt", "a+") as input_file:
print("{}".format(i), file = input_file)
И теперь вы получите то, что ожидали от этого. Теперь у input.txt
будет следующее в отличие от вашего случая.
ab
cd
ef
Примечание: Но если вы запустите first.py
во второй раз, он продолжит добавление, поскольку a+
создает файл, если файл не существует, в противном случае он добавляется.
Для лучшей работы этого кода используйте функцию os.path exists()
модуля.
А если вы хотите вызвать код, доступный в first.py
, оберните его внутри функции. Затем импортируйте эту функцию в second.py
и вызовите.
Например
Сначала убедитесь, что first.py
и second.py
находятся в одном каталоге.
first.py
def create_file(file_name):
list=["ab","cd","ef"]
for i in list:
with open(file_name, "a+") as input_file:
print(" {}".format(i), file = input_file)
second.py
from first import create_file
def read_file(file_name):
# Create file with content
create_file(file_name)
# Now read file content
input_file = open(file_name, 'r')
for line in input_file:
if "ef" in line:
print(line)
read_file('input.txt')
Открыть терминал, перейти в этот каталог, запустить python second.py
.
https://www.learnpython.org/en/Module... | https://www.digitalocean.com. .. | https://www.programiz.com/pytho... помогут вам, если вы захотите прочитать и попробовать как создать модуль / пакет на Python.
Обновление : Сказанное выше имеет проблему, как вы упоминали в комментарии, при каждом запуске он будет добавлять содержимое. Давайте исправим это с небольшим изменением first.py
следующим образом.
import os
def create_file(file_name):
l = ["ab", "cd", "ef"]
if os.path.exists(file_name): # If file `input.txt` exists (for this example)
os.remove(file_name) # Delete the file
for i in l:
with open(file_name, "a+") as input_file:
print(" {}".format(i), file = input_file)
Вот и все (обновите комментарий, если вы застряли).