【问题标题】:ask to create new empty file python input name from txt [closed]要求从 txt 创建新的空文件 python 输入名称 [关闭]
【发布时间】:2021-01-14 10:46:07
【问题描述】:

我需要你的帮助 python 代码来创建新文件(空白),只需从列表中命名。

my_list = ['jordan', 'bella', 'anabelle']

我们想创造

  1. jordan.html
  2. bella.html
  3. anabelle.html

非常感谢大家

【问题讨论】:

标签: python


【解决方案1】:
with open("names.txt") as f:
    my_list = f.readline().split()
    for item in my_list:
        with open(item+'.html', 'w') as fp:
            pass

【讨论】:

  • 也许您想将来自其他响应之一的with open("names.txt") as ff.readline().split() 合并,而不是硬编码列表内容?这可能是一个很好的、完整的回应
  • 好评。谢谢。
【解决方案2】:

(已编辑:用于导入和迭代) 如果你想遍历一个列表:

with open('a.txt') as f:
    a = f.read().split(' ')
for i in a:
    with open(i + '.html', 'w') as f:
        pass

【讨论】:

  • 感谢您的回复,但我想从 a.txt 列表中的目录输入名称文件中创建新文件
  • 你永远不应该使用带有未转义参数的 os.popen 来执行文件操作(或者其他任何未转义的东西,真的)。这是不安全的,也是最糟糕的方法之一。例如。模式为“w”的 open() 和没有内容的关闭可以在没有这些警告的情况下完成这项工作。
  • 没错,我还在自学中。
  • 你会推荐什么?用 open(i) 作为 f?
  • 谢谢你的提示!!我将编辑我的答案。
【解决方案3】:
import os


class IO:

    def __init__(self):
        self.data = open("names.txt").readline().split()

    def show(self):
        return self.data

    def create_files(self):
        for i in self.data:
            os.system("touch " + str(i) + str(".html"))


io = IO()

print(io.create_files())

试试这个....在 names.txt 中,只需在名称之间放置空格

【讨论】:

  • 非常不安全,永远不要将 shell 命令与未转义的用户参数组合在一起。这允许使用恶意文件名输入执行任意代码。
  • 是的,但它适用于不会部署它的新手,它只是为了练习在一分钟内编写的“工作证明”。我理解你所说的,我同意,但这里的上下文允许它
  • 我建议不要教任何人,包括新手,这种不良做法非常不安全,而且正确的安全方法(参见其他回复stackoverflow.com/a/65717764/1204141)相对简单.请不要让任何人在没有转义的情况下使用 shell 命令。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-19
  • 2018-04-24
  • 1970-01-01
  • 2016-05-11
  • 1970-01-01
  • 1970-01-01
  • 2016-04-11
相关资源
最近更新 更多