Python 如何将文件中的行连接到一行代码上?
我是编程新手,目前正在解决这个问题,我想增加读取文件的能力,并根据给定的缩进格式对其进行格式化。我当前的代码:Python 如何将文件中的行连接到一行代码上?,python,Python,我是编程新手,目前正在解决这个问题,我想增加读取文件的能力,并根据给定的缩进格式对其进行格式化。我当前的代码: import sys filename=input("What file would you like to reformat?") f=open(filename,"r") n_lines= int(f.readline()) indents=(f.readline()) block=0 for line in f: line=line.lstrip('·» \t')
import sys
filename=input("What file would you like to reformat?")
f=open(filename,"r")
n_lines= int(f.readline())
indents=(f.readline())
block=0
for line in f:
line=line.lstrip('·» \t')
if line.startswith('ENDIF') or line.startswith('NEXT'):
block-=1
print(indents*block+line)
if line.startswith('FOR') or line.startswith('IF'):
block+=1
给我这个
VAR I
FOR I=1 TO 31
····
IF !(I MOD 3) THEN
····
····
PRINT "FIZZ"
····
ENDIF
····
IF !(I MOD 5) THEN
····
····
PRINT "BUZZ"
····
ENDIF
····
IF (I MOD 3) && (I MOD 5) THEN
····
····
PRINT "FIZZBUZZ"
····
ENDIF
NEXT
,但我希望它在同一行上打印伪缩进+行。您的
缩进
字符串以换行结束,如下所示:“\n”
。你想摆脱它
indents=f.readline().strip('\n')
从文本文件中读取时,在到达文件末尾之前,每行末尾都会有一个换行符
默认情况下,print()
还将向其输出中添加一个换行符。如果不希望这样,可以传递一个end
参数
print('this line doesn't need another newline.\n', end='')
您的
缩进
字符串以换行符结尾,如下所示:“\n”
。你想摆脱它
indents=f.readline().strip('\n')
从文本文件中读取时,在到达文件末尾之前,每行末尾都会有一个换行符
默认情况下,print()
还将向其输出中添加一个换行符。如果不希望这样,可以传递一个end
参数
print('this line doesn't need another newline.\n', end='')
只需在程序中使用多行字符串作为输入。 inputBasicCode=“” … “” 这是一种更简单、更清晰的程序输入方法。非常适合调试。专注于目标。
只需在程序中使用多行字符串作为输入。 inputBasicCode=“” … “” 这是一种更简单、更清晰的程序输入方法。非常适合调试。专注于目标。 您的语句
打印(缩进*块+行)
固有地在末尾添加一个新行字符。因为python“print”语句添加了换行符,而不管print命令中的内容是什么。
在print语句的末尾添加一个逗号,就像这样print(缩进*块+行,)
,它将不会打印换行符。您的语句print(缩进*块+行)
固有地在末尾添加一个新行字符。因为python“print”语句添加了换行符,而不管print命令中的内容是什么。
在print语句的末尾添加一个逗号,就像这样
print(缩进*块+行,)
它不会打印换行符。文件的输入是什么?我觉得有代码丢失了。另外,可以举一个小的例子。你的文件的输入是什么?我觉得有代码丢失了。另外,也许可以举一个小的例子。非常感谢,这让我很难受哈哈。非常感谢,这让我难受哈哈。谢谢RJM,你在这个问题上是对的,但这个解决方案对我不起作用。@lzzino还有另一种方法可以抑制换行符,请尝试打印(缩进*块+行,结束=”)
,这将以空格而不是换行符结束print
语句。谢谢RJM,你在这个问题上是对的,但这个解决方案对我不起作用。@lzzino还有另一种方法可以抑制换行符,请尝试print(缩进*块+行,end=“”)
,这将以空格而不是换行符结束print
语句。