编写程序读取一个python源文件去掉空行和注释在写入另一个文件
时间: 2023-07-18 20:06:14 浏览: 90
可以使用Python的正则表达式模块re来匹配注释和空行,然后将代码行写入新文件中。以下是一个示例代码:
```python
import re
# 打开源文件和目标文件
with open('source.py', 'r') as source_file, open('target.py', 'w') as target_file:
# 读取所有行
lines = source_file.readlines()
# 遍历每一行
for line in lines:
# 使用正则表达式匹配注释和空行
if re.match(r'^\s*(#|$)', line):
continue # 如果是注释或空行则跳过
else:
target_file.write(line) # 否则写入目标文件
```
在上面的代码中,我们使用了re.match函数来判断每一行是否为注释或空行,如果是则使用continue跳过,否则将其写入目标文件中。注意,我们使用了Python的with语句来自动关闭文件,这样可以在程序结束时确保文件被正确关闭。
相关问题
读取一个python源程序文件,去掉其中的空行和注释,然后写入另一个文件
可以使用Python自带的fileinput模块,它可以读取多个文件并自动处理空行和注释。代码如下:
import fileinput
# 读取源程序文件,并去掉其中的空行和注释
with fileinput.input(files=('source.py'), inplace=True) as f:
for line in f:
line = line.strip() # 去掉行末的空格和换行符
if (not line) or line.startswith('#'): # 如果是空行或注释行,则跳过
continue
print(line) # 输出到标准输出,将会重定向到文件中
# 写入处理后的源程序到另一个文件
with open('new_source.py', 'w') as f:
for line in fileinput.input(files=('source.py')):
f.write(line)
编写程序,读取一个 Python 源程序in.txt文件,去掉其中的空行和注释(只考虑#的注释),然后写入另一个文件out.txt中
以下是 Python 代码实现:
```python
with open('in.txt', 'r') as f_in, open('out.txt', 'w') as f_out:
for line in f_in:
# 去除空行
if line.strip() == '':
continue
# 去除注释
if '#' in line:
line = line[:line.index('#')]
f_out.write(line)
```
首先打开输入文件in.txt和输出文件out.txt,然后逐行读取输入文件中的内容。如果该行是空行,则跳过该行;如果该行包含注释,则只保留注释前面的内容。最后将处理后的内容写入输出文件中。
阅读全文