Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中修改程序文件?_Python - Fatal编程技术网

如何在Python中修改程序文件?

如何在Python中修改程序文件?,python,Python,在我修改代码的实际窗口中,有一种方法可以将代码的一部分插入到我已有的每一行中。就像在第一个点的所有行中插入逗号一样>?代码是数据。您可以像处理任何其他文本文件一样执行此操作。打开文件,读一行,在前面加一个逗号,然后写回文件 此外,大多数现代IDE/文本编辑器都能够定义宏。您可以发布一个问题,为您的编辑寻求具体帮助。例如,在Emacs中,我将使用C-x(开始定义宏,然后用“,”来写逗号,然后用C-b C-n返回一个字符并向下一行,然后用C-x)结束我的宏。然后我可以用C-xe运行这个宏,按e再执行

在我修改代码的实际窗口中,有一种方法可以将代码的一部分插入到我已有的每一行中。就像在第一个点的所有行中插入逗号一样>?

代码是数据。您可以像处理任何其他文本文件一样执行此操作。打开文件,读一行,在前面加一个逗号,然后写回文件


此外,大多数现代IDE/文本编辑器都能够定义宏。您可以发布一个问题,为您的编辑寻求具体帮助。例如,在Emacs中,我将使用C-x(开始定义宏,然后用“,”来写逗号,然后用C-b C-n返回一个字符并向下一行,然后用C-x)结束我的宏。然后我可以用C-xe运行这个宏,按e再执行一次。

你是说交互式shell吗?(又称打开提示符并键入
python
)?您不能返回并编辑以前的命令所做的操作(因为它们已经执行),但可以点击向上箭头来翻转这些命令以编辑并重新执行它们

如果你正在做很长时间的事情,最好的办法是将你的程序写入你选择的文本编辑器中,保存该文件,然后启动它

使用Python在每行开头添加逗号:

import sys
src = open(sys.argv[1])
dest = open('withcommas-' + sys.argv[1],'w')
for line in src:
    dest.write(',' + line)
src.close()
dest.close()

这样调用:
C:\Scripts>python commaz.py cc.py
。这是一件很奇怪的事情,但我该和谁争论呢。

如果您在UNIX环境中,打开一个终端,
cd
到文件所在的目录,然后使用
sed
命令。我认为这可能有效:

sed "s/\n/\n,/" your_filename.py > new_filename.py
这意味着将
文件名.py
中的所有
\n
(换行符)替换为
\n、
(换行符+逗号字符),并将结果输出到
新文件名.py


更新:这更好:

sed "s/^/,/" your_filename.py > new_filename.py
这与前面的示例非常相似,但是我们使用正则表达式标记
^
,它匹配每行的开头(并且
$
是结束的符号)



有可能这不起作用,或者它甚至不适用于你,因为你在你的问题中没有提供那么多的信息(我本来会对此发表评论,但我不能,因为我没有足够的声誉或其他东西)。祝你好运。

你需要的是文件编辑器,而不是python

  • 为您的操作系统安装适当的VIM变型
  • 使用VIM打开要修改的文件
  • 类型:
    :%s/^/,/
  • 类型:
    :wq


  • 我打开python并单击新建窗口。我在那里写了我的程序,但它有90000行。我想插入一个更正,但不想手动执行90000times@novak你用的是什么IDE?如果你想对每一行做一些基本的调整(添加一个逗号),你可以在文本编辑器中用搜索/替换或其他几种方法来做。@novak我不知道这个编辑器;如果您有*nix或Cygwin,请使用其他答案之一;如果你生活在Windows上,还有很多更好的选择(我喜欢记事本++),而不是我上面的代码片段,但它是有效的。我完全被你是什么弄糊涂了saying@novak1.将上述代码另存为
    commaz.py
    ,保存在与目标文件相同的目录中。2.打开命令提示符并
    cd
    到该目录。3.运行
    python commaz.py[yourfile]
    。我需要在python的新窗口中更改90000行,我的答案仍然适用。。。在emacs中,C-u(number)C-xe将运行宏(number)次。这不是最简单的方法,但是如果你不明白什么是emacs或宏,我就不打算解释它们了。这就是谷歌的作用。这对我没有多大帮助,wilduck。是的。你只是不明白。也许告诉我们你用什么IDE/程序来编写代码;在大多数IDE中,正则表达式应该具有查找/替换功能,可以支持对每一行执行某些操作。@novak这个问题与Python有什么关系?我一点也不相信您已经编写了一个90000行的Python程序,但您不知道如何进行查找和替换。为什么要在程序的每一行中插入逗号?我需要在列表中的每一项前后插入一些文本。“名单上有90000名成员。”丹尼尔·罗斯曼说。他自己还没有写过一本,但我怀疑他是抄袭了一本。阅读问题的第二条评论。也许你应该在问题中提到这一点?如果你不在接受帮助方面付出最小的努力,人们帮助你会简单得多。在提出问题时,少输入错误,多输入细节,将大有帮助。无论如何,祝你好运,找到你想要的答案。这不公平。VIM对于神经外科医生来说太复杂了(查看对Wilduck答案的评论)。