Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.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_Linux - Fatal编程技术网

Python:空格到制表符?

Python:空格到制表符?,python,linux,Python,Linux,我有一个python文件(/home/test.py),其中混合了空格和制表符 是否有一种编程方式(注意:编程,不使用编辑器)将此文件转换为仅使用选项卡?(也就是说,将任何现有的4-空格引用替换为单个选项卡) 如果您能提供python代码示例或linux命令来执行上述操作,我将不胜感激。谢谢。听起来像是sed的任务: sed -e 's/ /\t/g' test.py > test.new [放置真正的选项卡,而不是\t] 然而 每个缩进级别使用4个空格 --您可以尝试迭代该文件并

我有一个python文件(
/home/test.py
),其中混合了空格和制表符

是否有一种编程方式(注意:编程,不使用编辑器)将此文件转换为仅使用选项卡?(也就是说,将任何现有的
4-空格
引用替换为单个
选项卡


如果您能提供python代码示例或linux命令来执行上述操作,我将不胜感激。谢谢。

听起来像是sed的任务:

sed -e 's/    /\t/g' test.py > test.new
[放置真正的选项卡,而不是\t]

然而

每个缩进级别使用4个空格


--

您可以尝试迭代该文件并执行以下操作

import fileinput
for line in fileinput.FileInput("file",inplace=1):
    print line.replace("    ","\t")
或者您可以尝试*nix工具,如
sed/awk

$ awk '{gsub(/    /,"\t")}1' file > temp && mv temp file

$ ruby -i.bak -ne '$_.gsub!(/    /,"\t")' file

您不想将4个空格转换为制表符。这是反对PEP-8的。4个空格是标准的-也适用于您:)除此之外:查看Python的tabcleaner.py脚本并从中删除相关代码。@Javier:谢谢。我不知道如何应用它,这正是我想要的。谢谢。@user540009:我希望您参考政治公众人物8:-)谢谢。为了记录在案,您将如何用4个空格替换每个“选项卡”?(什么是反向的
sed
命令)?@user540009:“s/\t//g”(中间斜杠前有一个制表符,后面有四个空格)是反向的。或者,如果其他人在实际键入制表符时遇到困难,您可以使用Python的,
sed-e$'s//\t/g'
将切换为
\t
扩展为真正的制表符:)答案不错,尽管下面的一行更好。