python实现将d盘test文件夹下所有叫check的文件夹中的x.txt和y.txt两个文本文档的最后一行,输出到d盘test文件下的restult.txt中,并自动换行
时间: 2024-02-26 15:57:19 浏览: 71
可以使用os和glob模块来实现这个功能。以下是示例代码:
```python
import os
import glob
# 获取所有名字为check的文件夹路径
folders = glob.glob('D:/test/**/check', recursive=True)
# 遍历每个文件夹
for folder in folders:
# 获取x.txt和y.txt的路径
x_path = os.path.join(folder, 'x.txt')
y_path = os.path.join(folder, 'y.txt')
# 读取最后一行
with open(x_path, 'r') as f1, open(y_path, 'r') as f2:
x_last_line = f1.readlines()[-1]
y_last_line = f2.readlines()[-1]
# 将最后一行写入result.txt
with open('D:/test/result.txt', 'a') as f:
f.write(x_last_line.strip() + '\n')
f.write(y_last_line.strip() + '\n')
```
这段代码会搜索D盘test文件夹下所有名字为check的文件夹,并读取其中的x.txt和y.txt文件的最后一行,将它们写入D盘test文件夹下的result.txt中,并自动换行。
相关问题
Python检查C盘和D盘路径下是否存在"test.txt"文件,如果不存在则不做动作,如果存在则检查"test.txt内是否包含"open"字符,如果包含,则不做动作,如果不包含则弹窗口警告"数据异常请联系工程师"需要实时监控
好的,以下是Python的代码实现:
```python
import os
def check_file(path):
if os.path.exists(path):
with open(path, 'r') as f:
content = f.read()
if 'open' not in content:
print('数据异常请联系工程师')
else:
pass # 文件不存在,不做动作
check_file('C:/test.txt')
check_file('D:/test.txt')
```
这段代码首先通过`os.path.exists`函数判断文件是否存在,如果不存在则不做动作,如果存在则打开文件并读取内容。如果文件内容中不包含`open`字符,则输出提示信息。如果包含,则不做动作。最后分别检查C盘和D盘下的`test.txt`文件。你可以将这段代码放在一个循环中,以实现实时监控。
用python的subprocess.check_output写一个脚本,脚本要求:1、将网络路径172.18.86.7\test映射盘符到电脑T,,如果电脑已经有盘符T,则自动使用其他字母做盘符号2、新建盘符时,自动在网络路径上新建一个txt文件(文件内容:电脑名字、IP,时间)
好的,以下是使用`subprocess.check_output`实现的Python脚本:
```python
import subprocess
import os
import socket
import time
# 获取可用的盘符
def get_drive():
drives = ['%s:' % d for d in range(65,91) if os.path.exists('%s:' % chr(d))]
for d in drives:
if not os.path.exists('%s\\' % d):
return d
return None
# 将网络路径映射到电脑
def map_drive(drive_letter, network_path):
subprocess.check_output(['net', 'use', drive_letter + ':', network_path])
# 获取电脑名和IP
def get_computer_info():
computer_name = socket.gethostname()
ip_address = socket.gethostbyname(computer_name)
return (computer_name, ip_address)
# 在网络路径上新建txt文件
def create_txt_file(network_path):
computer_name, ip_address = get_computer_info()
file_name = time.strftime('%Y%m%d%H%M%S') + '.txt'
file_path = os.path.join(network_path, file_name)
with open(file_path, 'w') as f:
f.write('Computer name: %s\nIP address: %s\nTime: %s' % (computer_name, ip_address, time.strftime('%Y-%m-%d %H:%M:%S')))
if __name__ == '__main__':
network_path = r'\\172.18.86.7\test'
drive_letter = get_drive()
if not drive_letter:
print('No available drive letter!')
else:
map_drive(drive_letter, network_path)
create_txt_file(network_path)
```
解释一下脚本的实现过程:
1. `get_drive`函数获取可用的盘符,从'A'盘符一直到'Z'盘符,找到第一个未被使用的盘符。
2. `map_drive`函数将网络路径映射到电脑上,使用`subprocess.check_output`调用命令行工具`net use`实现。
3. `get_computer_info`函数获取电脑名和IP地址,使用Python内置的`socket`库实现。
4. `create_txt_file`函数在网络路径上新建一个txt文件,文件名包含当前时间,文件内容包括电脑名、IP地址和当前时间。
5. 在`__main__`函数中调用以上三个函数,完成脚本的功能。
注意事项:
1. 使用`subprocess.check_output`调用命令行工具时,需要以列表的形式传入命令及其参数。
2. 在使用`open`函数打开文件时,需要指定打开模式为写入模式`'w'`,否则无法写入内容。
3. 在使用`os.path.join`函数拼接文件路径时,需要保证路径中的斜杠方向正确,否则可能会出现路径错误的问题。
阅读全文